J'ai eu un problème similaire récemment où je présentais 3 options et une annulation. Les 3 boutons inférieurs semblaient avoir un demi-bouton hors de l'alignement. J'ai dû cliquer entre les boutons pour les faire fonctionner. Tout dépendait de l'endroit où je présentais la feuille d'action. Si vous avez un TabBarController vous devez présenter la feuille d'action à partir de là:
[actionSheet showInView:self.parentViewController.tabBarController.view];
Si vous avez juste la vue elle-même, avec peut-être une barre de navigation, puis présenter de la vue est très bien:
[actionSheet showInView:self.view];
En mon cas j'avais une barre d'onglets pour l'iPhone et non pour la version iPad, donc je l'ai fait:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
[actionSheet showInView:self.view];
} else {
[actionSheet showInView:self.parentViewController.tabBarController.view];
}
on ne sait pas à partir de la documentation de référence UIActionSheet mais il pourrait être sage de présenter t La feuille d'action du contrôleur «avant» le plus sensible. Donc, s'il y a une barre d'outils en bas, présentez-la. Ces restrictions ne semblent pas s'appliquer à l'iPad car les feuilles d'action sont présentées à l'intérieur des popovers.
Espérons que ça aide.
J'ai eu un problème très similaire; dans mon cas, la feuille d'action (que je montrais en vue self.view) semblait bien, mais le bouton Annuler ne fonctionnait pas dans la partie qui chevauchait la barre d'onglets. Changer le paramètre inView en self.tabBarController.view l'a corrigé. (Note: dans mon cas, je n'ai pas eu besoin d'utiliser parentViewController ... vérifiez votre propre hiérarchie de vue pour être sûr.) –