如今,多數愛啪啪都有一鍵換膚的功能,即便是稱呼不一樣,但是都做了同樣的事情,實現了同樣的效果。簡單高效的方式就是使用通知,我們就來看一下使用通知是如何實現的~~~簡單到爆炸!
首先:我們在工程中新建幾個控制器,并為每個控制器設置不同的背景顏色。
工程目錄
我們在其中的一個設置頁面,進行某一項操作以達到改變所有頁面的背景顏色的目的。
- (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"];
}
其他所有頁面的做法是一樣的..
這個時候我們在設置頁面所做操作之后,就會看到所有的頁面背景顏色都改變了。
我們的例子只是設置背景顏色,其實利用通知進行別的項目設置也是類似的,咱們有興趣都可以探討···