iOS开发之“一键换夫”

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


iOS开发之“一键换夫”_第1张图片
工程目录

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

- (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"];
}

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

你可能感兴趣的:(iOS开发之“一键换夫”)