iOS傳值之通知傳值

思路:

將要傳遞的值告訴通知中心NSNotificationCenter,然后利用通知中心實現從一個界面到另一個界面傳遞的功能

先創建兩個視圖控制器與對應的類關聯分別為ViewController 和NextViewcontroller。

在第一個視圖中添加一個UILabel和一個UIButton控件:UILabel顯示從第二個界面中傳回來的值,UIButton設置跳轉到第二個界面。

第二個視圖中添加一個UITextField控件,輸入文字,當從第二個界面返回到第一個界面時,即當第二個界面要消失的時候,將UITextField中所輸入的文字傳遞到第一個界面,并且顯示在第一個界面的label上。

1.在storyboard中添加兩個視圖控制器與類關聯,其他控件大概如下


2.代碼如下

NextViewController.m? 為button添加一個方法


- (IBAction)back:(id)sender {

//將要傳遞的值保存到字典中再通過key傳遞

NSDictionary *dict = [[NSDictionary alloc]initWithObjectsAndKeys:self.textField.text,@"text", nil];

//創建通知

NSNotification *notification = [NSNotification notificationWithName:@"tongzhi" object:nil userInfo:dict];

//利用通知中心發送通知

[[NSNotificationCenter defaultCenter]postNotification:notification];

[self dismissViewControllerAnimated:YES completion:nil];

}


ViewController.m ?實現以下方法


-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

//獲取所要跳轉到的視圖控制器,將創建的nvc作為目標控制器

NextViewController *nvc = [[NextViewController alloc]init];

nvc = segue.destinationViewController;

//獲取通知

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(getValue:) name:@"tongzhi" object:nil];

}

-(void)getValue:(NSNotification *)backValue {

self.label.text = backValue.userInfo[@"text"];

}

3.效果如下



最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容