iOS传值之通知传值

2016-12-08  本文已影响58人  H小凡

思路:

将要传递的值告诉通知中心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.效果如下


上一篇 下一篇

猜你喜欢

热点阅读