自iOS8起,苹果就建议告警框使用UIAlertController来代替UIAlertView
在ViewDidLoad中加载时报错 whose view is not in the window hierarchy! 视图没创建出来之前是不能弹出来的
解决办法,延长时间加载
1.一般的提示框
func normalController(){
let alertController = UIAlertController(title: "温馨提示", message: "还是UIAlertController好用!", preferredStyle: UIAlertControllerStyle.Alert)
let cancelAction = UIAlertAction(title: "取消", style: UIAlertActionStyle.Cancel, handler: nil)
let okAction = UIAlertAction(title: "确定", style: .Default, handler: { (alertC:UIAlertAction!) -> Void in
//确定后相关操作在这里写
print("确定")
})
alertController.addAction(cancelAction)
alertController.addAction(okAction)
self.presentViewController(alertController, animated: true) { () -> Void in
print("弹框出来的时候调用")
}
}
2.底部弹框
func sheetController(){
let alertController = UIAlertController(title: "保存或删除数据", message: "删除之后不可恢复", preferredStyle: UIAlertControllerStyle.ActionSheet)
let cancelAction = UIAlertAction(title: "取消", style: .Cancel, handler: nil)
//.Destructive文字变红警示用户
let deleteAction = UIAlertAction(title: "删除", style: .Destructive) { (alertC:UIAlertAction!) -> Void in
print("毁灭了!")
}
let archiveAction = UIAlertAction(title: "保存", style: .Default) { (alertC : UIAlertAction!) -> Void in
print("保存了!")
}
alertController.addAction(cancelAction)
alertController.addAction(deleteAction)
alertController.addAction(archiveAction)
self.presentViewController(alertController, animated: true) { () -> Void in
print("创建底部弹框")
}
}
3.文本输入框
func textController(){
let alertConreoller = UIAlertController(title: "登录", message: "请输入账号和密码", preferredStyle: .Alert)
alertConreoller.addTextFieldWithConfigurationHandler { (textField:UITextField!) -> Void in
textField.placeholder = "请输入账号名称"
}
alertConreoller.addTextFieldWithConfigurationHandler { (textField : UITextField!) -> Void in
textField.placeholder = "请输入密码"
textField.secureTextEntry = true//不让别人看到输入的密码
}
let cancelAction = UIAlertAction(title: "取消", style: .Cancel, handler: nil)
let LoginAction = UIAlertAction(title: "登录", style: .Default) { (alertC : UIAlertAction!) -> Void in
//确定后的操作
let userName = alertConreoller.textFields?.first?.text
let passWorld = alertConreoller.textFields?.last?.text
print(userName!,passWorld!)
}
alertConreoller.addAction(cancelAction)
alertConreoller.addAction(LoginAction)
self.presentViewController(alertConreoller, animated: true) { () -> Void in
print("创建了文本输入框")
}
// self.performSelector(Selector("dismissController"), withObject: alertConreoller, afterDelay: 3)
}
可以定时出现与消失
self.performSelector(Selector("dismissController"), withObject: alertConreoller, afterDelay: 3)
func dismissController(){
//移除文本提示框
self.presentedViewController?.dismissViewControllerAnimated(false, completion: nil)
}