上周一半忙一半懒,没输出.......
1.异步运行
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
present(alert, animated: true, completion: nil)
…
…
此处present()只是让对话框alert显示在屏幕上,然后就迅速返回,写在其后面的语句会继续执行下去,而不会等待对话框关闭。
(注:原文中是presentViewController(),我学习的时候swift已升级)
1)iOS中,对话框的运行是异步(asynchronously)的。
2) 同步运行:其它代码必须等待当前的代码完成后才能继续执行;
异步运行:其它代码无需等待当前的代码完成后就可继续执行;
比如一些需要在后台执行的处理,不能或不需等待其完成才进行后续处理。
2.提示框
1)使用UIAlertController定义提示框,包括提示框的文字内容,以及外观样式
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
2)使用UIAlertAction定义提示框上的按钮对象,包括按钮上的文字内容,以及它的外观显示;
let action = UIAlertAction(title: btn_message, style: .default, handler: nil)
第3个参数handler告诉提示框对象当按钮被触碰时应该发生什么事情,nil意味着什么也不会发生
3)使用addAction往提示框上添加按钮
alert.addAction(action)
3.callback回调模式
当触碰提示框上的按钮,它就会把自己从屏幕上删除,并发送一条消息。这就是callback(回调)模式。
iOS中有几种方式来实现:
1)闭包
let action = UIAlertAction(title: btn_message, style: .default, handler: {action in self.方法1 self.方法2})
把触碰按钮后要执行的动作,放到一个块语句中,做为handler的参数。
这种块语句被称为closure(闭包)。
在closure(闭包)中必须使用self来代表视图控制器。这是因为闭包可以capture(捕获)变量,引起一些副作用(还没学到,待补充。。。)
2)其它的还没学到,待补充。。。