Swift - 告警提示框(UIAlertController)的用法

自iOS8起,苹果就建议告警框使用UIAlertController来代替UIAlertView。下面总结了一些常见的用法:

1,简单的应用(同时按钮响应Handler使用闭包函数)
  
Swift - 告警提示框(UIAlertController)的用法_第1张图片
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import  UIKit
 
class  ViewController UIViewController  , UIActionSheetDelegate  {
     override  func  viewDidLoad() {
         super .viewDidLoad()
     }
     
     override  func  viewDidAppear(animated:  Bool ){
         super .viewDidAppear(animated)
         
         let  alertController =  UIAlertController (title:  "系统提示" ,
             message:  "您确定要离开hangge.com吗?" , preferredStyle:  UIAlertControllerStyle . Alert )
         let  cancelAction =  UIAlertAction (title:  "取消" , style:  UIAlertActionStyle . Cancel , handler:  nil )
         let  okAction =  UIAlertAction (title:  "好的" , style:  UIAlertActionStyle . Default ,
             handler: {
                 action  in
                 print ( "点击了确定" )
         })
         alertController.addAction(cancelAction)
         alertController.addAction(okAction)
         self .presentViewController(alertController, animated:  true , completion:  nil )
     }
     
     override  func  didReceiveMemoryWarning() {
         super .didReceiveMemoryWarning()
         // Dispose of any resources that can be recreated.
     }
}

2,除了弹出,还可以使用从底部向上滑出的样式
(注意:如果上拉菜单中有“取消”按钮的话,那么它永远都会出现在菜单的底部,不管添加的次序是如何)
 
Swift - 告警提示框(UIAlertController)的用法_第2张图片
1
2
3
4
5
6
7
8
9
var  alertController =  UIAlertController (title:  "保存或删除数据" , message:  "删除数据将不可恢复" ,
     preferredStyle:  UIAlertControllerStyle . ActionSheet )
var  cancelAction =  UIAlertAction (title:  "取消" , style:  UIAlertActionStyle . Cancel , handler:  nil )
var  deleteAction =  UIAlertAction (title:  "删除" , style:  UIAlertActionStyle . Destructive , handler:  nil )
var  archiveAction =  UIAlertAction (title:  "保存" , style:  UIAlertActionStyle . Default , handler:  nil )
alertController.addAction(cancelAction)
alertController.addAction(deleteAction)
alertController.addAction(archiveAction)
self .presentViewController(alertController, animated:  true , completion:  nil )

3,按钮使用“告警”样式(文字颜色变红,用来来警示用户)
  
Swift - 告警提示框(UIAlertController)的用法_第3张图片
1
var  okAction =  UIAlertAction (title:  "好的" , style:  UIAlertActionStyle . Destructive , handler:  nil )

4,添加任意数量文本输入框(比如可以用来实现个登陆框)
  
Swift - 告警提示框(UIAlertController)的用法_第4张图片
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import  UIKit
 
class  ViewController UIViewController  , UIActionSheetDelegate  {
     override  func  viewDidLoad() {
         super .viewDidLoad()
     }
     
     override  func  viewDidAppear(animated:  Bool ){
         super .viewDidAppear(animated)
         
         let  alertController =  UIAlertController (title:  "系统登录" ,
             message:  "请输入用户名和密码" , preferredStyle:  UIAlertControllerStyle . Alert )
         alertController.addTextFieldWithConfigurationHandler {
             (textField:  UITextField !) ->  Void  in
             textField.placeholder =  "用户名"
         }
         alertController.addTextFieldWithConfigurationHandler {
             (textField:  UITextField !) ->  Void  in
             textField.placeholder =  "密码"
             textField.secureTextEntry =  true
         }
         let  cancelAction =  UIAlertAction (title:  "取消" , style:  UIAlertActionStyle . Cancel , handler:  nil )
         let  okAction =  UIAlertAction (title:  "好的" , style:  UIAlertActionStyle . Default ,
             handler: {
                 action  in
                 let  login = alertController.textFields!.first!  as  UITextField
                 let  password = alertController.textFields!.last!  as  UITextField
                 print ( "用户名:\(login.text) 密码:\(password.text)" )
         })
         alertController.addAction(cancelAction)
         alertController.addAction(okAction)
         self .presentViewController(alertController, animated:  true , completion:  nil )
     }
     
     override  func  didReceiveMemoryWarning() {
         super .didReceiveMemoryWarning()
     }
}

5,使用代码移除提示框
1
self .presentedViewController?.dismissViewControllerAnimated( false , completion:  nil )

你可能感兴趣的:(闭包,swift,ios开发)