Créer UIActionSheet 'otherButtons' en passant dans la gamme, pas varlist
J'ai un tableau de chaînes de caractères que je veux utiliser pour le bouton de titres sur un UIActionSheet. Malheureusement, la otherButtonTitles: argument dans l'appel de méthode prend une longueur variable de la liste de chaînes de caractères, pas un tableau.
Alors, comment je peux m'en passer de ces titres dans le UIActionSheet? La solution de contournement que j'ai vu il est suggéré de passer néant en otherButtonTitles:, puis spécifiez le bouton de titres individuellement en utilisant addButtonWithTitle:. Mais c'est le problème de déplacement du bouton "Annuler" pour la première position sur la UIActionSheet plutôt que le dernier; je veux qu'il soit le dernier.
Est-il un moyen pour 1) passer un tableau au lieu d'une variable de la liste de chaînes de caractères, ou bien 2) déplacez le bouton annuler en bas de la UIActionSheet?
Grâce.
- vous ne savez pas si cela va fonctionner, mais la cancelButtonIndex propriété de UIActionSheet n'est pas en lecture seule. Essayez et voir si cela change l'ordre des boutons?
Vous devez vous connecter pour publier un commentaire.
J'ai eu ce travail (vous avez juste besoin d'être ok avec un bouton habituel, et il suffit de l'ajouter après :
destructiveButton
est rouge.[UIActionSheet addButtonWithTitle]
ne semble pas à définir correctement lesfirstOtherButtonIndex
(qui devrait être utilisé dans le délégué duactionSheet:clickedButtonAtIndex:
plutôt que de coder en dur les 0 ou les trucs similaires). Obtenir méchant avec la conversion d'unNSArray
àva_list
ne sonne pas comme une excellente solution. 🙁 Cette API est tellement laid.NSDictionary
contenant les titres comme des clés avecNSNumber
(par exemple@(0)
) en tant que valeurs. DansactionSheet:clickedButtonAtIndex:
par exemple, j'ai eu le titre pour les pressésbuttonIndex
viabuttonTitleAtIndex
sur leactionSheet
. Puis-je obtenir la valeur avec le titre clé de mon dictionnaire et prendre laintegerValue
de cette valeur pour faire unswitch-case
. Pour moi, c'est génial de travailler. N'oubliez pas d'ajouter le bouton tous les titres également annuler etc. à votre dictionnaireUne petite remarque: [actionSheet addButtonWithTitle:] renvoie l'index du bouton, afin d'être en sécurité et "propre", vous pouvez le faire:
destructiveButtonIndex
pour elleLa prise de Jaba et Nick réponses et à les étendre un peu plus loin. Pour intégrer une destruction bouton dans cette solution:
Il y a la swift version pour la réponse :
Pour obtenir la valeur sélectionnée, ajouter le délégué de votre ViewController :
Et de mettre en œuvre la méthode "clickedButtonAtIndex"