iOS开发之“一键换夫”

如今,多数爱啪啪都有一键换肤的功能,即便是称呼不一样,但是都做了同样的事情,实现了同样的效果。简单高效的方式就是使用通知,我们就来看一下使用通知是如何实现的~~~简单到爆炸!
首先:我们在工程中新建几个控制器,并为每个控制器设置不同的背景颜色。


工程目录

我们在其中的一个设置页面,进行某一项操作以达到改变所有页面的背景颜色的目的。

- (IBAction)changeColor:(UIButton *)sender {
    NSLog(@"一键修改背景颜色");
    //通知中心发送通知消息
    [[NSNotificationCenter defaultCenter]postNotificationName:@"change" object:nil userInfo:@{@"color":[UIColor lightGrayColor]}];
    self.view.backgroundColor = [UIColor lightGrayColor];//设置设置页面自身的背景
}

通知的实现是一对多的关系,我们在设置页面里面发送了通知,相应的要是在别的页面注册通知,只有注册了通知之后,在接收的通知消息的时候就会做出相应的操作。于是,我们在其他各个页面注册通知,并实现其相应方法:

- (void)viewDidLoad {
    [super viewDidLoad];
    //注册消息
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(changeTheme:) name:@"change" object:nil];
}
-(void)changeTheme:(NSNotification *)sender{
    self.view.backgroundColor = sender.userInfo[@"color"];
}

其他所有页面的做法是一样的..
这个时候我们在设置页面所做操作之后,就会看到所有的页面背景颜色都改变了。
我们的例子只是设置背景颜色,其实利用通知进行别的项目设置也是类似的,咱们有兴趣都可以探讨···

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,680评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 在大风中,静悄悄. 看天上一朵云儿也不单调. 没有悲伤,也没有微笑. 空了的人,已忘了寂寥. 春去秋来,我睡了一觉...
    LY_945阅读 213评论 0 1
  • 下雨了。风席卷着肮脏的雨水抽打窗户。 他们坐下来吃晚饭。 “今天工作怎么样?”她一边吃,一边问道。“还成。”他回答...
    苏壹鸣阅读 413评论 0 3
  • 一天都在培训,考试也都通过了,还不错,挺有收获的。衣服也到了,挺好。
    老老明阅读 203评论 0 0