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)。
  • 后台获取(您可以在后台获取和接收结果)