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,523評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 在大風中,靜悄悄. 看天上一朵云兒也不單調. 沒有悲傷,也沒有微笑. 空了的人,已忘了寂寥. 春去秋來,我睡了一覺...
    LY_945閱讀 213評論 0 1
  • 下雨了。風席卷著骯臟的雨水抽打窗戶。 他們坐下來吃晚飯。 “今天工作怎么樣?”她一邊吃,一邊問道。“還成。”他回答...
    蘇壹鳴閱讀 413評論 0 3
  • 一天都在培訓,考試也都通過了,還不錯,挺有收獲的。衣服也到了,挺好。
    老老明閱讀 203評論 0 0