UIAlertController in swift.

UIAlertView and UIActionSheet are Deprecated in iOS8 and Later. So Apple Introduce new controller for Alertview and ActionSheet called UIAlertController , changing the preferredStyle, you can switch alert or ActionSheet. There is no delegate in it, all button event handle in block.




NOTE : This tutorial only for Alert View, Set  preferredStyle  :UIAlertControllerStyle.Alert.

1. Simple :
let alertController = UIAlertController(title: "Simple", message: "Simple alertView demo with Cancel and Ok.", preferredStyle: UIAlertControllerStyle.Alert) let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) { (result : UIAlertAction) -> Void in print("Cancel") } let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { (result : UIAlertAction) -> Void in print("OK") } alertController.addAction(cancelAction) alertController.addAction(okAction) self.presentViewController(alertController, animated: true, completion: nil)



2. Destructive  :
let alertController = UIAlertController(title: "Destructive", message: "Simple alertView demo with Destructive and Ok.", preferredStyle: UIAlertControllerStyle.Alert) let DestructiveAction = UIAlertAction(title: "Destructive", style: UIAlertActionStyle.Destructive) { (result : UIAlertAction) -> Void in print("Destructive") } 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)



3. PlainTextStyle :
let alertController = UIAlertController(title: "PlainTextStyle", message: "PlainTextStyle AlertView.", preferredStyle: UIAlertControllerStyle.Alert) alertController.addTextFieldWithConfigurationHandler { (textField : UITextField) -> Void in textField.placeholder = "Login" } let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) { (result : UIAlertAction) -> Void in print("Cancel") } let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { (result : UIAlertAction) -> Void in print(alertController.textFields?.first?.text) } alertController.addAction(cancelAction) alertController.addAction(okAction) self.presentViewController(alertController, animated: true, completion: nil)


4. SecureStyle :
let alertController = UIAlertController(title: "SecureStyle", message: "SecureStyle AlertView.", preferredStyle: UIAlertControllerStyle.Alert) alertController.addTextFieldWithConfigurationHandler { (textField : UITextField) -> Void in textField.secureTextEntry = true textField.placeholder = "Password" } let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) { (result : UIAlertAction) -> Void in print("Cancel") } let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { (result : UIAlertAction) -> Void in print(alertController.textFields?.first?.text) } alertController.addAction(cancelAction) alertController.addAction(okAction) self.presentViewController(alertController, animated: true, completion: nil)



5. LoginStyle:
let alertController = UIAlertController(title: "LoginStyle", message: "LoginStyle AlertView.", preferredStyle: UIAlertControllerStyle.Alert) alertController.addTextFieldWithConfigurationHandler { (textField : UITextField) -> Void in textField.placeholder = "Login" textField.addTarget(self, action: "alertTextFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged) } alertController.addTextFieldWithConfigurationHandler { (textField : UITextField) -> Void in textField.secureTextEntry = true textField.placeholder = "Password" } let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) { (result : UIAlertAction) -> Void in print("Cancel") } let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { (result : UIAlertAction) -> Void in print(alertController.textFields?.first?.text) } okAction.enabled = false alertController.addAction(cancelAction) alertController.addAction(okAction) self.presentViewController(alertController, animated: true, completion: nil)
 function to check textfield text condition.
func alertTextFieldDidChange(sender : UITextField){ let alertV = self.presentedViewController as? UIAlertController let login = (alertV!.textFields?.first)! as UITextField let okAction = alertV!.actions.last! as UIAlertAction okAction.enabled = login.text?.characters.count > 2 }



See demo project on GIT : UIAlert​Controller

Thanks.

UIAlertController in swift. UIAlertController in swift. Reviewed by KIRIT MODI on 10:36:00 Rating: 5

3 comments:

Powered by Blogger.