UIAlertViewController的使用

Swift弹出提示框

系统提供两种样式可供选择,一种是Alert,在一种是AlertSheet。两种弹出框的区别如图:

UIAlertViewController的使用_第1张图片
Alert样式
UIAlertViewController的使用_第2张图片
AlertSheet样式

对于两种样式,系统提供了三种按钮,分别是Default、Cancle、Destructive

  • Default:蓝色,对应上图确定按钮
  • Cancle:蓝色加粗,对应上图取消按钮
  • Destructive:红色,对应上图警告按钮

绑定按钮点击事件

  • 默认情况下,即我们设置按钮处理事件为nil,当我们点击会使AlertView消失掉
    例如:
    alertContr.addAction(UIAlertAction(title: "", style: .Default, handler: nil)

  • 自定义事件绑定,有两种方式:1.绑定定义好的方法,2.使用闭包。代码举例,为方便起见,我们使用一种特殊闭包,官方称之为TrailingClosure
    alertContr.addAction(UIAlertAction(title: "取消", style: .Cancel){clickHandler in /*\**do what you want*/})

高级使用

Swift提供了更加更加高级的用法,我们不仅可以往UIAlertView上添加按钮,我们还可以添加TextField,实现如下图所示的功能

UIAlertViewController的使用_第3张图片
登录

代码如下:

func loginAction(){
        let alertContr = UIAlertController(title: "标题", message: "Swift 弹出框", preferredStyle: .Alert)
        alertContr.addTextFieldWithConfigurationHandler {
            (textField: UITextField!) -> Void in
            textField.placeholder = "登录"
        }
        alertContr.addTextFieldWithConfigurationHandler {
            (textField: UITextField!) -> Void in
            textField.placeholder = "密码"
            textField.secureTextEntry = true
        }
        alertContr.addAction(UIAlertAction(title: "确定", style: .Default){
            clickHandler in
            let loginName = alertContr.textFields!.first! as UITextField
            let password = alertContr.textFields!.last! as UITextField
            NSLog("LoginName:\(loginName.text!),Password:\(password.text!)")
            })
        alertContr.addAction(UIAlertAction(title: "取消", style: .Cancel){
            clickHandler in
            NSLog("点击了取消")
            })
        self.presentViewController(alertContr, animated: true, completion: nil)
    }

你可能感兴趣的:(UIAlertViewController的使用)