Ajouter un UIAlertView simple

Quel est le code de démarrage que je pourrais utiliser pour créer un UIAlertView simple avec un bouton “OK”?

Lorsque vous souhaitez que l’alerte s’affiche, procédez comme suit:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ROFL" message:@"Dee dee doo doo." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; // If you're not using ARC, you will need to release the alert view. // [alert release]; 

Si vous voulez faire quelque chose lorsque l’utilisateur clique sur le bouton, implémentez cette méthode de délégué:

 - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { // the user clicked OK if (buttonIndex == 0) { // do something here... } } 

Et assurez-vous que votre délégué est conforme au protocole UIAlertViewDelegate :

 @interface YourViewController : UIViewController  

D’autres réponses fournissent déjà des informations pour iOS 7 et UIAlertView antérieures, mais UIAlertView est obsolète dans iOS 8 .

Dans iOS 8+, vous devez utiliser UIAlertController . C’est un remplacement pour UIAlertView et UIActionSheet . Documentation: Référence de la classe UIAlertController . Et un bel article sur NSHipster .

Pour créer une vue d’alerte simple, vous pouvez effectuer les opérations suivantes:

 UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"Message" preferredStyle:UIAlertControllerStyleAlert]; //We add buttons to the alert controller by creating UIAlertActions: UIAlertAction *actionOk = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:nil]; //You can use a block here to handle a press on this button [alertController addAction:actionOk]; [self presentViewController:alertController animated:YES completion:nil]; 

Swift 3/4:

 let alertController = UIAlertController(title: "Title", message: "Message", preferredStyle: .alert) //We add buttons to the alert controller by creating UIAlertActions: let actionOk = UIAlertAction(title: "OK", style: .default, handler: nil) //You can use a block here to handle a press on this button alertController.addAction(actionOk) self.present(alertController, animated: true, completion: nil) 

Notez que, depuis qu’il a été ajouté dans iOS 8, ce code ne fonctionnera pas sur iOS 7 et versions antérieures. Donc, malheureusement, pour le moment, nous devons utiliser les vérifications de version comme ceci:

 NSSsortingng *alertTitle = @"Title"; NSSsortingng *alertMessage = @"Message"; NSSsortingng *alertOkButtonText = @"Ok"; if ([UIAlertController class] == nil) { //[UIAlertController class] returns nil on iOS 7 and older. You can use whatever method you want to check that the system version is iOS 8+ // Starting with Xcode 9, you can also use // if (@available(iOS 8, *)) { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:alertTitle message:alertMessage delegate:nil cancelButtonTitle:nil otherButtonTitles:alertOkButtonText, nil]; [alertView show]; } else { UIAlertController *alertController = [UIAlertController alertControllerWithTitle:alertTitle message:alertMessage preferredStyle:UIAlertControllerStyleAlert]; //We add buttons to the alert controller by creating UIAlertActions: UIAlertAction *actionOk = [UIAlertAction actionWithTitle:alertOkButtonText style:UIAlertActionStyleDefault handler:nil]; //You can use a block here to handle a press on this button [alertController addAction:actionOk]; [self presentViewController:alertController animated:YES completion:nil]; } 

Swift 3/4:

 let alertTitle = "Title" let alertMessage = "Message" let alertOkButtonText = "Ok" if #available(iOS 8, *) { let alertController = UIAlertController(title: alertTitle, message: alertMessage, preferredStyle: .alert) //We add buttons to the alert controller by creating UIAlertActions: let actionOk = UIAlertAction(title: alertOkButtonText, style: .default, handler: nil) //You can use a block here to handle a press on this button alertController.addAction(actionOk) } else { let alertView = UIAlertView(title: alertTitle, message: alertMessage, delegate: nil, cancelButtonTitle: nil, otherButtonTitles: alertOkButtonText) alertView.show() } 

UPD: mise à jour pour Swift 3/4.

UPD 2: ajout d’une note pour @available dans Objc-C à partir de Xcode 9.

UIAlertView est obsolète sur iOS 8. Par conséquent, pour créer une alerte sur iOS 8 et supérieur, il est recommandé d’utiliser UIAlertController:

 UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Title" message:@"Alert Message" preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){ // Enter code here }]; [alert addAction:defaultAction]; // Present action where needed [self presentViewController:alert animated:YES completion:nil]; 

C’est comme ça que je l’ai mis en œuvre.

 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:nil //or self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; [alert autorelease]; 
 UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok",nil]; [myAlert show]; 

En complément des deux réponses précédentes (de l’utilisateur “sudo rm -rf” et “Evan Mulawski”), si vous ne voulez rien faire lorsque vous cliquez sur la vue d’alerte, vous pouvez simplement l’allouer, l’afficher et la libérer. Vous n’avez pas à déclarer le protocole de délégué.

Voici une méthode complète qui ne comporte qu’un seul bouton, un ‘ok’, pour fermer l’UIAlert:

 - (void) myAlert: (NSSsortingng*)errorMessage { UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:errorMessage message:@"" delegate:self cancelButtonTitle:nil otherButtonTitles:@"ok", nil]; myAlert.cancelButtonIndex = -1; [myAlert setTag:1000]; [myAlert show]; } 

Cette page montre comment append un UIAlertController si vous utilisez Swift.

Alerte simple avec données de tableau:

 NSSsortingng *name = [[YourArray objectAtIndex:indexPath.row ]valueForKey:@"Name"]; NSSsortingng *msg = [[YourArray objectAtIndex:indexPath.row ]valueForKey:@"message"]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:name message:msg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; 

Pour Swift 3:

 let alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: UIAlertControllerStyle.alert) alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil)) self.present(alert, animated: true, completion: nil)