Apple a amorcé la feuille d'action dans iOS 8.3 Comment ajoutez-vous une feuille d'action à mon interface utilisateur? P>
J'ai réalisé que la documentation d'Apple n'est pas très claire sur la manière de créer une feuille d'action avec UIALERTCONTROLLER. Donc, après un petit jouant, je voulais juste partager mon code, car je ne pouvais pas vraiment trouver quoi que ce soit utile sur la pile échange à propos de ce sujet. P>
3 Réponses :
Voici un extrait du code que j'ai utilisé dans mes applications pour une feuille d'action, juste au cas où quelqu'un avait besoin d'aide à essayer de déterminer comment utiliser uialertController comme une feuille d'action.
UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Action Sheet" message:@"This is an action sheet." preferredStyle:UIAlertControllerStyleActionSheet]; UIAlertAction *button1 = [UIAlertAction actionWithTitle:@"Button Title 1" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) { //code to run once button is pressed }]; UIAlertAction *button2 = [UIAlertAction actionWithTitle:@"Button Title 2" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { //code to run once button is pressed }]; [alert addAction:button1]; [alert addAction:button2]; [self presentViewController:alert animated:YES completion:nil];
J'ai eu le même problème dans mon application iPhone, avec un Avant IOS 9, le code suivant a fonctionné bien: p> Cependant, dans IOS 9, tout cela est complètement assombri l'écran et rien n'apparaîtrait. P> Ouais ... merci apple. p> La solution consiste à remplacer le code> uacéheet code> avec un remarque que si vous ne em> pas em> inclure une option Annuler (une option avec le style Un gotcha: p> même si nous avons spécifié que nous voulions que nous voulions ce J'ai hâte de voir quel code IOS 9.2 de travail percera parfaitement. . p> Mon commentaire: " Cependant, dans iOS 9, tous Ceci est complètement assombri l'écran, et rien n'apparaîtrait em> "était légèrement faux. P> En réalité, j'ouvre mon avec (soupir.) P> Veuillez puis-je revenir à l'aide de Visual Studio, Maintenant ..? P> Une autre mise à jour forte> p> Apple a déclaré que les utilisateurs sont maintenant "obsolètes dans iOS 8". P> Cependant, Si vous souhaitez continuer à les utiliser, sur vos écrans IOS contenant des boîtes de texte, une solution de contournement sur ce bogue, ERRR, problème, consiste à ajouter une ligne de code avant d'afficher votre uiacersheet code> pour demander à l'utilisateur s'il voulait prendre une photo ou choisir une image de leur galerie.
uialertController p>. p>.
uialertagerStylecancel code>), puis la feuille d'action sera apparaissent, mais taper n'importe où à l'extérieur de la feuille d'action ne rejetera pas le menu. p>
uialertController code> pour avoir le style
uialertControlsTyEctionSheaction code>, vous devez définir le titre comme
nil code>, plutôt qu'une chaîne vierge, sinon vous obtenez un écart laid. En haut de la fenêtre. p>
uiacersheet code> pendant que le clavier à l'écran était visible. Et dans iOS 9, le clavier apparaîtra
uiacersheet code>, de sorte que vous ne pouvez plus voir votre feuille d'action (!!), mais vous faire Voir que le reste de l'écran est devenu plus sombre. p>
uialertController code>, iOS est légèrement plus convivial, car il cache em> le clavier à l'écran avant de tenter d'afficher la feuille d'action au bas de la écran. Exactement pourquoi Apple ne fait pas la même chose avec
uacéheets code> est au-delà de moi. P>
uacéheet code>: p>: p>
[self.view endEditing:true];
Merci Derek. Je semble être beaucoup traîné sur Stackoverflow lorsque je posterai des réponses utiles comme celle-ci, alors c'est agréable d'obtenir de bons commentaires pour une fois !!
Hé mike pas un problème! J'ai une question qui n'est pas liée à ce fil du tout, mais savez-vous s'il est possible de construire une application où vous pouvez déverrouiller votre porte de voiture par Bluetooth? Je ne trouve rien à ce sujet et n'est probablement pas possible, mais je pensais que je vous demanderais.
@Derek: Désolé, je n'ai absolument aucune idée. Mais je serais surpris si c'était possible (d'un point de vue de sécurité, si rien d'autre).
Merci pour la réponse Mike. Je pensais la même chose, mais pensé à vérifier. Merci!
Dans iOS 9 et pour iPad, j'ai dû ajouter des changements importants. Peut-être que quelqu'un à l'avenir pourrait avoir besoin de cela.
UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Server" message:@"Choose server to point to" preferredStyle:UIAlertControllerStyleActionSheet]; UIAlertAction *button1 = [UIAlertAction actionWithTitle:@"Development" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) { //code to run once button is pressed }]; UIAlertAction *button2 = [UIAlertAction actionWithTitle:@"Production" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { //code to run once button is pressed }]; [alert addAction:button1]; [alert addAction:button2]; UIPopoverPresentationController *popPresenter = [alert popoverPresentationController]; popPresenter.sourceView = self.view; //To present the actionsheet the bottom of screen popPresenter.sourceRect = CGRectMake(self.createBtn.frame.origin.x, self.view.frame.size.height, self.createBtn.frame.size.width, self.createBtn.frame.size.height); alert.modalPresentationStyle = UIModalPresentationPopover; [self presentViewController:alert animated:YES completion:nil];