iOS_界面传值——通知传值

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/w582324909/article/details/79000454

注册一个通知来实现界面间的传值,这种方法一般用在界面返回时比较多一点。

1、基本逻辑:


点击button进入下一个界面,在UITextField中输入任意字符串后,点击右上角的传值,返回主页,主页上显示

UITextField所输入的值。

2、代码实现:

(1)在第二个控制器.m文件中:

- (IBAction)sendInfo:(id)sender {
    NSDictionary *dataDic = [NSDictionary dictionaryWithObject:self.info.text forKey:@"info"];
    [[NSNotificationCenter defaultCenter] postNotificationName:@"infoNotification" object:nil userInfo:dataDic];
    [self.navigationController popViewControllerAnimated:YES];
}
这个是传值item的点击事件,将所传的信息用字典传出去。

(2)在主页的控制器.m中:

- (void)viewDidLoad {
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNotification:) name:@"infoNotification" object:nil];
}

-(void)receiveNotification:(NSNotification *)infoNotification {
    NSDictionary *dic = [infoNotification userInfo];
    NSString *str = [dic objectForKey:@"info"];
    self.infoLabel.text = str;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

接收通知、注销通知的代码。

如果有什么看不懂的可以看我这一篇注释的博客:

ios——注册通知的使用示例

这里面讲的比较清楚,使用通知的时候要注意了,前后使用的名称一定要一致,最好自己复制下,防止写错了。

这是第二篇关于界面传值方法的介绍,之前的一篇请参考链接:

iOS_界面传值——属性传值篇



没有更多推荐了,返回首页