Vidéo: Gaspard l'Ange Gardien Connecté iPhone 7 6s iPad et Apple Watch IOS Smartphone Android 2025
Les vues d'alerte interrompent les utilisateurs lorsqu'ils utilisent une application iOS, leur demandant d'arrêter ce qu'ils font et de rejeter l'alerte ou de sélectionner une action. Notez qu'une vue Alert apparaît en haut du contenu sur l'écran d'une application - après tout, l'objectif de l'alerte est d'attirer l'attention de l'utilisateur.
La figure montre une vue Alert à partir d'une application Tic-Tac-Toe. Cliquer sur Oui efface l'ancien jeu et en démarre un nouveau. Cliquer sur Non termine le jeu.
Comme avec la plupart des vues iOS, vous utilisez la délégation pour implémenter une alerte. Toutefois, la spécification du délégué est effectuée par programme, c'est-à-dire non pas via le constructeur d'interface, comme pour les boutons. Le code suivant illustre comment procéder (pris dans la classe GameView, implémentée dans TTTGameView.m et.h):
- (void) promptToProceed: (TTTGameSessionViewController *) GameViewController {UIAlertView * alert = [[UIAlertView alloc] init]; [alert setTitle: @ "Game Over!"]; [alert setMessage: @ "Jouer à un autre jeu?"]; [alert addButtonWithTitle: @ "Oui"]; [alert addButtonWithTitle: @ "Non"]; [alert setDelegate: GameViewController]; [alert show];}
Une fois l'alerte instanciée de la manière typique d'Objective-C (en utilisant alloc suivi par init), les propriétés title et no sont ajoutées et les boutons Yes et No sont ajoutés en tant que sous-vues à la vue Alert en utilisant la méthode addButtonWithTitle. Juste avant l'affichage de l'alerte (à l'aide de la méthode show), le contrôleur de vue Session de jeu est défini en tant que délégué à l'alerte à l'aide de la méthode setDelegate.
Étant donné que le contrôleur de vue Session de jeu est défini comme délégué à l'alerte, une action de la classe Contrôleur de vue Session de jeu est déclenchée lorsqu'un bouton de l'alerte est touché.
Tout délégué à l'alerte doit implémenter le protocole UIAlertViewDelegate et, par conséquent, une méthode nommée clickedButtonAtIndex comme méthode d'action déléguée pour l'alerte. Vérifiez TTTGameSessionViewController. m, et vous verrez cette méthode clickedButtonAtIndex, qui est également affichée dans le code suivant:
- (void) alertView: (UIAlertView *) alertView clickedButtonAtIndex: (NSInteger) buttonIndex {if (buttonIndex == 0) {[self playNewGame];} else if (buttonIndex == 1) {return;}}
Le bouton Yes a été ajouté en premier, donc son index est 0. Comme vous pouvez le voir, appuyer sur ce bouton lance une nouvelle partie. Le bouton No a été ajouté en second lieu, donc son index est 1. Le toucher ne fait rien.
