CS193P-警报,通知,应用程序生命周期
行动表
例
var alert = UIAlertController(
标题:“重新部署卡西尼号”,
消息:“向卡西尼号的制导系统发出命令。”,
preferredStyle:.actionSheet
)
alert.addAction(UIAlertAction(
标题:“土星轨道”,
样式:UIAlertActionStyle.default)
{(action:UIAlertAction)->
//进入轨道
}
)
alert.addAction(UIAlertAction(
标题:“探索泰坦”,
样式:.default)
{(action:UIAlertAction)->
如果!self.loggedIn {self.login()
//如果已登录,请前往titan
}
)
alert.addAction(UIAlertAction(
标题:“太阳特写”,
风格:。破坏性)
{(action:UIAlertAction)->
如果!loggedIn {self.login()}
//如果已登录,请前往Sun销毁Cassini
}
)
alert.addAction(UIAlertAction(
标题:“取消”,
样式:.cancel)
{(action:UIAlertAction)->
//做点什么
}
)
目前(警告,动画:正确,完成:无)
添加textField
alert.addTextField(configurationHandler:{
textField.placeholder =“密码”
textField.isSecureTextEntry = true
}
)
alert.addAction(UIAlertAction(
标题:“登录”,
样式:.default)
{(action:UIAlertAction)->
//获取密码并登录
如果让tf = self.alert.textFields?.first {
self.loginWithPassword(tf.text)
}
}
)
通知
收听广播电台
var观察者:NSObjectProtocol? = NotificationCenter.default.addObserver(
forName:Notification.Name,
队列:OperationQueue?
){(notification:Notification)-> Void in
//广播发生时关闭
让信息:有吗? = notification.userInfo
}
收听“电台广播”的示例
让中心= NotificationCenter.default
var观察者= center.addObserver(
forName:Notification.Name.UIContentSizeCategoryDidChange
对象:UIApplication.shared,//或无
队列:OperationQueue.main //或nil){
//使用首选字体重新设置对象的字体
//或查看尺寸类别并对其进行处理...
让c = notification.userInfo?[UIContentSizeCategoryNewValueKey]
//例如,c可能是UIContentSizeCategorySmall
}
center.removeObserver(observer)//听完后
发布通知
NotificationCenter.default.post(
名称:Notification.Name,//“无线电台”的名称
对象:任意?,//发送此通知的人(通常是self)
userInfo:[AnyHashable:Any]? = nil //您想传递给电台监听器的任何信息
)
- 科沃
- 注册一个闭包以在属性值更改时调用
- 通常由控制器用来观察其模型或视图
- 属性必须符合键值编码才能正常工作
var观察= observed.observe(keyPath:KeyPath)
{(已观察,已更改)在
//由keyPath描述的属性更改时执行的代码
}
应用生命周期
- 状态还原(保存UI的状态,以便即使您被杀死也可以还原它)。
- 数据保护(可以将文件锁定为用户设备的屏幕上的文件)。
- 打开URL(在“项目设置”的Xcode的“信息”选项卡中,您可以注册某些URL)。
- 后台获取(您可以在后台获取和接收结果)