界面传值3:通知

本篇文章将介绍界面传值的第三个方法:通知.
对于通知,我们可以用一个形象的比喻来形容,假设有这么一个小区,小区内部有一公示栏,小区物业想要通知大家把窗帘都换成绿色的,该怎么办呢?物业当然可以安排工作人员一家一家的告知,但是这显然不是最明智的,最简单的方法是在公示栏上面张贴一个通知,通知的内容就是告诉大家要在某年某月某日之前把自家的窗帘都换成绿色,所有的业主,在进入小区的时候看到这样一通知后,就知道了物业的这一要求,然后就会实现这件事情就可以了.

而我们ios的通知的原理和流程其实很类似这个小区公示栏的作用,下面我看看是如何实现的.

首先我们需要有三个viewcontroller 通过导航视图控制器来管理,每个页面给定一个背景颜色,另外我们在第三个页面添加一个按钮,效果如下:

6A6A2AF4-4E91-47AD-AF72-893D8CB31764.png
B19E6F93-2C38-4593-A11C-11EA9D0433F4.png
58ED543E-1826-4A33-B1BD-F02BD99A3D80.png

最终我们要实现的效果是,点击第三页的按钮,可以改变前两个页面的背景颜色,

第二步:我们要在这个按钮的点击事件里面添加注册通知的方法

-(void)btnClick:(UIButton *)sender{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"changeColor" object:nil userInfo:@{@"color":[UIColor blueColor]}];
}

这段代码就相当于物业在公告栏上面张贴的通知,在刚才的比喻里面我们需要注意的是,只有本小区的业主才需要遵守通知的要求,非本小区业主是不需要理会的,同样在ios里面,不是每一页面都要去做响应通知的操作,只有这个页面在通知中心添加观察者后,才可以执行相应的操作,代码如下,可以写到viewdidload里面

    [[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(changecolor:) name:@"changeColor" object:nil];

然后我们需要去实现changcolor的方法

-(void)changecolor:(NSNotification *)sender{
    self.view.backgroundColor = sender.userInfo
    [@"color"];
}

这样我们就实现了通知传值.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一封信《公众号的关注业主来信》 小区已经开始筹备业主委员会了,但很多业主都是事后才迷迷糊糊地了解这一情况。大多数...
    篁外之声阅读 606评论 0 1
  • 文翔名苑业主大会议事规则为了规范业主大会的活动,维护业主的合法权益,根据《中华人民共和国物权法》、《物业管理条例》...
    kevinHan阅读 1,089评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,886评论 25 709
  • 你根本不知道我是多害怕,多害怕,怕你会被别人喜欢,更怕你喜欢上别人。
    棒棒糖收藏家阅读 196评论 0 0
  • 敦煌赋 金漠翡翠,丝路明珠。五千年朗月鉴,三省地龙脉结。枕祁连之雄伟,带党河之隽秀。泉映月牙盈盈,风携羌笛悠悠。鸣...
    明白的石头阅读 653评论 0 1