Adding a simple UIAlertView Adding a simple UIAlertView ios ios

Adding a simple UIAlertView


When you want the alert to show, do this:

    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];

If you want to do something when the button is clicked, implement this delegate method:

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

And make sure your delegate conforms to UIAlertViewDelegate protocol:

@interface YourViewController : UIViewController <UIAlertViewDelegate> 


Other answers already provide information for iOS 7 and older, however UIAlertView is deprecated in iOS 8.

In iOS 8+ you should use UIAlertController. It is a replacement for both UIAlertView and UIActionSheet. Documentation: UIAlertController Class Reference. And a nice article on NSHipster.

To create a simple Alert View you can do the following:

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 / 5:

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 buttonalertController.addAction(actionOk)self.present(alertController, animated: true, completion: nil)

Note, that, since it was added in iOS 8, this code won't work on iOS 7 and older. So, sadly, for now we have to use version checks like so:

NSString *alertTitle = @"Title";NSString *alertMessage = @"Message";NSString *alertOkButtonText = @"Ok";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 / 5:

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)    self.present(alertController, animated: true, completion: nil)}else {    let alertView = UIAlertView(title: alertTitle, message: alertMessage, delegate: nil, cancelButtonTitle: nil, otherButtonTitles: alertOkButtonText)    alertView.show()}

UPD: updated for Swift 5. Replaced outdated class presence check with availability check in Obj-C.


UIAlertView is deprecated on iOS 8. Therefore, to create an alert on iOS 8 and above, it is recommended to use 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];

This is how I have implemented it.