简单总结通知的使用方法【NSNotificationCenter】

在相互传值的时候,我个人比较喜欢使用delegate,因为刚开始学习的时候对delegate掌握的不是很熟练,所以一直使用,养成了习惯,只要是反向传值就使用delegate,无论多少层,完全忽略了通知的这个机制。今天就总结一下通知的使用。
欢迎加入我个人维护QQ群:379069176
PS:定期分享干货
原理图:


Paste_Image.png

如果有类似的情况我们就应该使用通知来去实现。
首先,我们要在接收消息的地方添加通知:
举例:
view3中有一个button,当button点击之后,view1和view2都需要点击事件的通知。

第一步:
在view1和view2中添加通知:【一般情况都是在init方法中添加】
NSNotificationCenter.defaultCenter().addObserver(self, selector: "didKeyClickAction:", name: "keyBoardClick", object: nil)
第二步:
在当前的view中创建方法:func didKeyClickAction(sender: NSNotification)
第三步:
销毁这个监听,销毁监听的方法有很多,根据个人喜好和情况而定。

deinit {
  NSNotificationCenter.defaultCenter().removeObserver(self, name: "keyBoardClick", object: nil)
  }

以上3步完成之后,监听的部分就写完了,这里要注意的是,在添加通知的时候,name参数一定要和发送时候的name相互对应。

接下来,就来到view3中的button点击事件部分:

@IBAction func selectedKey(sender: UIButton) {
  guard let keyValue = sender.titleLabel?.text else {
   LOG("selected keyValue is null")
   return
  }
  let n = NSNotification(name: "keyBoardClick", object: keyValue)
  NSNotificationCenter.defaultCenter().postNotification(n)
 }

在这里创建发送信息,并传给通知中心。其中name就是之前写到的要对应的部分。object是要发送的内容。从而,button点击之后,view1和view2都可以得到keyValue的值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现cl...
    以德扶人阅读 2,903评论 2 50
  • 概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知...
    莫离_焱阅读 6,737评论 1 8
  • 这是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api。而view...
    Ten_Minutes阅读 5,869评论 1 19
  • 前言 本文列出了一些 NerdyUI 在实际项目中可能会用到的一些小技巧,以及一些注意事项,希望能对您有所帮助。如...
    猫执旅人阅读 5,079评论 25 15
  • 明天就过生日了,恰巧阴历只比阳历早一天,不知为何便很欢喜,近日常常会冒出做个小结的想法。 现在的我,在大大的北京一...
    慕九君阅读 678评论 9 1

友情链接更多精彩内容