Ich habe ein Aktionsblatt mit Optionen, die je nach den Umständen variieren. Es gibt genug verschiedene Tastentitel, die ich zuerst ein Array dieser Tastentitel erstellen möchte, aber ich kann nicht herausfinden, wie man das in das varargs Format umwandelt.
Ich möchte so etwas tun:
%Vor%Nun, natürlich, wenn ich müsste, könnte ich stattdessen so etwas tun:
%Vor%Aber das wäre schrecklich. Wer kennt ein paar nette syntaktische Zucker, um mir zu helfen?
BEARBEITEN:
Es wurde vorgeschlagen, dass ich addButtonWithTitle
benutze, was auf den ersten Blick gut aussieht, leider setzt dies die zusätzlichen Buttons nach dem Abbrechen Button, was nicht erwünscht ist.
Ich glaube, das ist ein Fehler mit Apples Code, da ihre Dokumentation zu addButtonWithTitle
Folgendes besagt:
HI-Anforderungen (Apples eigene Human Interface-Richtlinien) bevorzugen den Abbrechen-Button unter allen anderen Optionen, also würde ich sagen, Apple hat es vermasselt. Natürlich hilft mir das nicht wirklich, also bin ich wieder dabei, zwischen einem NSArray und einem Varargs zu konvertieren, was ich immer noch nicht kann.
Eine Variation von Himanshus Antwort:
%Vor%Hinweis: Ihre UIActionSheetDelegate-Methode sollte anstelle von buttonIndex auf Schaltflächenüberschriften überprüfen:
%Vor%Ich denke, das Schlüsseldetail, das die Leute verpassen, ist, den cancelButton im initWithTitle-Selektor zu setzen, anstatt ihn nach allen anderen Buttons hinzuzufügen und das Aussehen des Cancel-Buttons durch Aufruf von setCancelButtonIndex:.
zu spezifizierenHier ist eine Methode, die ich versucht habe, scheint gut zu funktionieren. Dies funktioniert, wenn Sie am Ende der Schaltflächen vor der Schaltfläche "Abbrechen" eine zusätzliche Schaltfläche hinzufügen möchten.
%Vor%Es scheint in Ordnung zu sein, ein zusätzliches 'Nil' am Ende der Schaltflächenliste hinzuzufügen, wenn Ihre Bedingung (condition4) nicht erfüllt ist.
Ich habe dies erfolgreich auf iOS7 getestet.
Tags und Links objective-c iphone ios variadic-functions uiactionsheet