'UIAlertView' quedó en desuso en iOS 9.0. Utilice UIAlertController con un estilo preferido de UIAlertControllerStyleAlert

He visto más respuestas, pero nada ayudó. Aquí está mi alerta y acción más antigua para eso

override func viewWillAppear(animated: Bool) { if Reachability.isConnectedToNetwork() == true { print("internet connection ok") } else { print("internet not ok") let alertView: UIAlertView = UIAlertView(title: "Alert ", message: "connect to internet", delegate: self, cancelButtonTitle: "settings", otherButtonTitles: "cancel") alertView.show() return } } func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) { if buttonIndex == 0 { //This will open ios devices wifi settings UIApplication.shanetworkingApplication().openURL(NSURL(string: "prefs:root")!) } else if buttonIndex == 1 { //TODO for cancel exit(0) } } 

En eso recibo una advertencia:

'UIAlertView' quedó en desuso en iOS 9.0. Utilice UIAlertController con un estilo preferido de UIAlertControllerStyleAlert

Lo intenté :

 let alert = UIAlertController(title: "Alert", message: "My Alert for test", prefernetworkingStyle: UIAlertControllerStyle.Alert) alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil)) alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Default, handler: { (action:UIAlertAction!) in print("you have pressed the Cancel button") })) self.presentViewController(alert, animated: true, completion: nil) 

Pero para agregar dos botones y agregar la ruta de índice del button, presione el enlace del método de mi código anterior, no puedo hacer eso. Nada pasa acción de mi button uialert,

Por favor, ayúdame, ¿Cómo puedo eliminar esas advertencias y recodificar mi Uialert con mi acción de dos botones?

Soy nuevo en Swift. Tu ayuda será útil. ¡Gracias!

Referencia UIAlertController

Consulte los botones Código Destructivo y Aceptar en UIAlertController :

 let alertController = UIAlertController(title: "Destructive", message: "Simple alertView demo with Destructive and Ok.", prefernetworkingStyle: UIAlertControllerStyle.alert) //Replace UIAlertControllerStyle.Alert by UIAlertControllerStyle.alert let DestructiveAction = UIAlertAction(title: "Destructive", style: UIAlertActionStyle.Destructive) { (result : UIAlertAction) -> Void in print("Destructive") } // Replace UIAlertActionStyle.Default by UIAlertActionStyle.default let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default) { (result : UIAlertAction) -> Void in print("OK") } alertController.addAction(DestructiveAction) alertController.addAction(okAction) self.presentViewController(alertController, animated: true, completion: nil) 

Swift 3:

 let alertController = UIAlertController(title: "Destructive", message: "Simple alertView demo with Destructive and Ok.", prefernetworkingStyle: UIAlertControllerStyle.alert) //Replace UIAlertControllerStyle.Alert by UIAlertControllerStyle.alert let DestructiveAction = UIAlertAction(title: "Destructive", style: UIAlertActionStyle.destructive) { (result : UIAlertAction) -> Void in print("Destructive") } // Replace UIAlertActionStyle.Default by UIAlertActionStyle.default let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default) { (result : UIAlertAction) -> Void in print("OK") } alertController.addAction(DestructiveAction) alertController.addAction(okAction) self.present(alertController, animated: true, completion: nil) 

Ver Alerta con button Destructivo y OK:

introduzca la descripción de la imagen aquí

En Swift 3 , puedes escribir esto:

 let alertController = UIAlertController(title: "Title", message: "This is my text", prefernetworkingStyle: UIAlertControllerStyle.alert) let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default) { (result : UIAlertAction) -> Void in print("You pressed OK") } alertController.addAction(okAction) self.present(alertController, animated: true, completion: nil) 

Para un post de alerta básico, me gusta usar una extensión en UIViewController:

 extension UIViewController { func alertMessageOk(title: String, message: String) { let alert = UIAlertController(title: title, message: message, prefernetworkingStyle: UIAlertControllerStyle.alert) let action = UIAlertAction(title: "Ok", style: .default, handler: nil) alert.addAction(action) present(alert, animated: true, completion: nil) } } 

Uso: self.alertMessageOk(title: "Test Title", message: "Test message")

  UIAlertController *AC = UIAlertController.alertControllerWithTitle("Title",message:"Message",prefernetworkingStyle:UIAlertControllerStyleAlert) UIAlertAction *ActionOne = [UIAlertAction actionWithTitle:"ActionOne" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { NSLog("ActionOne") } ] UIAlertAction *ActionTwo = [UIAlertAction actionWithTitle:"ActionTwo" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { NSLog("ActionTwo") } ] AC.addAction(ActionOne) AC.addAction(ActionTwo) self.presentViewController(AC,animated:true,completion:nil) 

Prueba este codigo Ex

  let actionSheetController: UIAlertController = UIAlertController(title: "Are you sure?", message: "", prefernetworkingStyle: .Alert) let cancelAction: UIAlertAction = UIAlertAction(title: "NO", style: .Cancel) { action -> Void in //Do your task } actionSheetController.addAction(cancelAction) let nextAction: UIAlertAction = UIAlertAction(title: "YES", style: .Default) { action -> Void in //Do your task //NSUserDefaults.standardUserDefaults().removePersistentDomainForName(NSBundle.mainBundle().bundleIdentifier!) // NSUserDefaults.standardUserDefaults().synchronize() } actionSheetController.addAction(nextAction) self.presentViewController(actionSheetController, animated: true, completion: nil) 

Obtengo esta respuesta de este enlace, creo que es útil para ti

Cómo agregar una acción a un button UIAlertView usando Swift iOS

  var alertController = UIAlertController(title: "Title", message: "Message", prefernetworkingStyle: .Alert) // Create the actions var okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { UIAlertAction in NSLog("OK Pressed") } var cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) { UIAlertAction in NSLog("Cancel Pressed") } // Add the actions alertController.addAction(okAction) alertController.addAction(cancelAction) // Present the controller self.presentViewController(alertController, animated: true, completion: nil) 

Este código lo ayudará

 let alertController = UIAlertController(title: "Default AlertController", message: "A standard alert", prefernetworkingStyle: .Alert) let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel) { (action:UIAlertAction!) in print("you have pressed the Cancel button"); } alertController.addAction(cancelAction) let OKAction = UIAlertAction(title: "OK", style: .Default) { (action:UIAlertAction!) in print("you have pressed OK button"); } alertController.addAction(OKAction) self.presentViewController(alertController, animated: true, completion:nil) 

Swift 3

  // Create message let alertController = UIAlertController(title: "Title", message: "Message", prefernetworkingStyle: .actionSheet) // Clear Action let clearAction = UIAlertAction(title: "Clear", style: .destructive, handler: { (action:UIAlertAction!) in print ("clear") }) alertController.addAction(clearAction) // Cancel let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: { (action:UIAlertAction!) in print ("Cancel") }) alertController.addAction(cancelAction) // Present Alert self.present(alertController, animated: true, completion:nil)