J'ai un tableau de chaînes que je souhaite utiliser pour les titres de bouton sur une feuille UIActionSheet. Malheureusement, l'argument otherButtonTitles: dans l'invocation de la méthode prend une liste de chaînes de longueur variable, pas un tableau.
Alors, comment puis-je transmettre ces titres dans la feuille UIActionSheet? La solution de contournement que j'ai vue suggérée est de passer nil dans otherButtonTitles :, puis de spécifier les titres des boutons individuellement en utilisant addButtonWithTitle :. Mais cela pose le problème de déplacer le bouton "Annuler" vers la première position sur la feuille UIActionSheet plutôt que sur la dernière; Je veux que ce soit le dernier.
Existe-t-il un moyen de 1) passer un tableau au lieu d'une liste variable de chaînes, ou bien 2) déplacer le bouton d'annulation vers le bas de la feuille UIActionSheet?
Merci.
la source
Réponses:
J'ai fait fonctionner cela (il vous suffit de, être d'accord avec un bouton normal, et de l'ajouter simplement après:
la source
cancelButton
n'est pas rouge. LedestructiveButton
est rouge.[UIActionSheet addButtonWithTitle]
ne semble pas correctement définifirstOtherButtonIndex
(qui devrait être utilisé dans leactionSheet:clickedButtonAtIndex:
plutôt que dans le codage en dur 0 ou autre chose similaire). Être méchant avec la conversion d'unNSArray
enva_list
ne semble pas non plus être une excellente solution. :-( Cette API est tellement moche.Une petite note: [actionSheet addButtonWithTitle:] renvoie l'index de ce bouton, donc pour être sûr et "propre", vous pouvez faire ceci:
la source
destructiveButtonIndex
pour celaPrendre les réponses de Jaba et Nick et les étendre un peu plus loin. Pour incorporer un bouton de destruction dans cette solution:
la source
Il existe la version rapide pour la réponse:
Pour obtenir la valeur sélectionnée, ajoutez un délégué à votre ViewController:
Et implémentez la méthode "clickedButtonAtIndex"
la source