NSNotificationCenter的使用

使用場(chǎng)景:反向傳值 和 換皮膚、鍵盤(pán)。

  • 通知是一對(duì) 多的!代理是一對(duì)一的!

  • 先監(jiān)聽(tīng)

  • 后接收

  • 監(jiān)聽(tīng): (這里的例子是使用 鍵盤(pán)name:UIKeyboardWillShowNotification)
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(viewUp) name:UIKeyboardWillShowNotification object:nil];

  • // object : 傳一個(gè)參數(shù) ,userInfo :傳多個(gè)參數(shù)(是字典來(lái)的)

  • 后接收:
    [[NSNotificationCenter defaultCenter]postNotificationName:@"test" object:@"我是通知的參數(shù)" userInfo:@{@"1":@"one"}];

  • 打印測(cè)試:
    -(void)test:(NSNotification *)sender{

    NSLog(@"%@",sender.object); //  object : 傳一個(gè)參數(shù)
    NSLog(@"%@",sender.userInfo); // userInfo :傳多個(gè)參數(shù)
    NSLog(@"自定義的通知");
    }
    

疑惑:為什么先監(jiān)聽(tīng)?后發(fā)送通知?

  • 下面用3個(gè)頁(yè)面說(shuō)明:A、B、C頁(yè)面,在 B 頁(yè)面添加一個(gè) 發(fā)送通知 和一個(gè) 監(jiān)聽(tīng)消息! A、C 分別添加一個(gè) 監(jiān)聽(tīng)消息?。ù藭r(shí),A、B、C中都有一個(gè)監(jiān)聽(tīng)方法!就是一監(jiān)聽(tīng)到通知就做出顏色改變!)
  • 測(cè)試結(jié)果是:(只有A 和 B 才能改變?。?/li>
A和B界面才有改變.png
  • 因?yàn)?通知是在 B 發(fā)送的!A 在 B 的前面,所以,可以監(jiān)聽(tīng)的到! C 在 B之后,代碼執(zhí)行不到,所以就不能 接收到通知?。ê帽纫粋€(gè)廣播 在 8:00 ~8:30開(kāi)播,A 在 8:00 之前就打開(kāi)廣播了,那么就可以收到消息,而C 在 8:30 后才打開(kāi) 廣播,那么就不會(huì)接收到廣播了);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容