你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開發- 界面傳值(1)-通知模式(廣播)

iOS開發- 界面傳值(1)-通知模式(廣播)

編輯:IOS開發綜合

之後的幾篇博客, 記錄下不同界面間傳值的常用辦法。

這篇文章記錄廣播的方式。

iOS的設計模式中,通知模式也是其中重要的模式之一,
Notification直譯為通知,其實本人覺得叫做廣播模式更為貼切。
它的作用就是一個對象對多個對象的同步操作。
用法很簡單,一個對象發出一個廣播,需要收聽的聽眾就先注冊一下,然後選定頻道,完了就可以收聽廣播的內容了。

但是要注意一點, 在收聽之前, 一定要先注冊。 不然發送的廣播接受不到, 也就是值改變了, 不會做出響應。

下面是一個簡單的demo, 效果如下:

第一個界面, 做為聽眾, 注冊收聽廣播。

第二個界面, 做為廣播, 發送廣播。

當第二個界面發出一個廣播後, 第一個界面自動接收。

\



<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD48cD6/ydLUss6/vGdpdMnPtcTUtMLrOjwvcD48cD5odHRwczovL2dpdGh1Yi5jb20vY29saW4xOTk0L05vdGlmaWNhdGlvblRlc3QuZ2l0PGJyIC8+PC9wPjxwPr7fzOXKtc/WyOfPwjo8L3A+PHA+tdrSu7j2vefD5iwg16Ky4bPJzqrM/dbaLCCyosno1sPK1bW9ueOypbrztcTP7NOmysK8/jo8L3A+PHA+PHByZSBjbGFzcz0="brush:java;">- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // 我們喜歡聽ChangeTheme的廣播 // 注冊成為廣播站ChangeTheme頻道的聽眾 NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; // 成為聽眾一旦有廣播就來調用self recvBcast:函數 [nc addObserver:self selector:@selector(recvBcast:) name:@"ChangeTheme" object:nil]; } // 這個函數是系統自動來調用 // ios系統接收到ChangeTheme廣播就會來自動調用 // notify就是廣播的所有內容 - (void) recvBcast:(NSNotification *)notify { static int index; NSLog(@"recv bcast %d", index++); // 取得廣播內容 NSDictionary *dict = [notify userInfo]; NSString *name = [dict objectForKey:@"ThemeName"]; UIColor *c = [dict objectForKey:@"ThemeColor"]; self.title = name; self.view.backgroundColor = c; }

第二個界面, 發送廣播

- (IBAction)btnClick:(id)sender
{
    // 取得ios系統唯一的全局的廣播站 通知中心
    NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
    
    //設置廣播內容
    NSString *name = @"設置顏色";
    UIColor *color_ = [UIColor redColor];
    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
                          name, @"ThemeName",
                          color_, @"ThemeColor", nil];
    
    //將內容封裝到廣播中 給ios系統發送廣播
    // ChangeTheme頻道
    [nc postNotificationName:@"ChangeTheme" object:self userInfo:dict];
    
}


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved