思路:
將要傳遞的值告訴通知中心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.效果如下