博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS NSNotification 通知传值
阅读量:4084 次
发布时间:2019-05-25

本文共 1159 字,大约阅读时间需要 3 分钟。

通知中心(NSNotification)传值,可以跨越多个页面传值, 一般也是从后面的页面传给前面的页面,即反向传值。

思路:第三个界面的值传给第一个界面。
1. 在第一个界面建立一个通知中心, 通过通知中心,注册一个监听事件
2. 在第一个界面中,设置接收到通知的事件。
3. 在第一个界面中的dealloc中, 将通知中心remove掉
4. 在第三个界面中, 建立一个通知中心, 通过通知中心, 发送通知(发送通知的过程就是传值的过程,将要传输的值作为object的值传给第一个界面 
代码片段:
第一界面:
     //通知中心是个单例
     NSNotificationCenter *notiCenter = [NSNotificationCenter defaultCenter];
     // 注册一个监听事件。第三个参数的事件名, 系统用这个参数来区别不同事件。
     [notiCenter addObserver:self selector:@selector(receiveNotification:) name:@"cesuo" object:nil];
     // @selector(receiveNotification:)方法, 即受到通知之后的事件
     - (void)receiveNotification:(NSNotification *)noti
{
     // NSNotification 有三个属性,name, object, userInfo,其中最关键的object就是从第三个界面传来的数据。name就是通知事件的名字, userInfo一般是事件的信息。
    NSLog(@"%@ === %@ === %@", noti.object, noti.userInfo, noti.name);
 }
     
     // 第一界面中dealloc中移除监听的事件
- (void)dealloc{
    
// 移除当前对象监听的事件
    [[
NSNotificationCenter defaultCenterremoveObserver:self];
    [
super dealloc];
}
第二界面: 
         // 创建一个通知中心
         NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
        // 发送通知. 其中的Name填写第一界面的Name, 系统知道是第一界面来相应通知, object就是要传的值。 UserInfo是一个字典, 如果要用的话,提前定义一个字典, 可以通过这个来实现多个参数的传值使用。
         [center postNotificationName:@"cesuo" object:@"zhangheng" userInfo:dic];

转载地址:http://murni.baihongyu.com/

你可能感兴趣的文章
图——基本的图算法(四)关键路径
查看>>
树中所有点距离之和
查看>>
Leetcode 834. 树中距离之和 C++
查看>>
【机器学习】机器学习系统SysML 阅读表
查看>>
最小费用最大流 修改的dijkstra + Ford-Fulksonff算法
查看>>
最小费用流 Bellman-Ford与Dijkstra 模板
查看>>
实现高性能纠删码引擎 | 纠删码技术详解(下)
查看>>
分布式系统下的纠删码技术(一) -- Erasure Code (EC)
查看>>
RS(纠删码)技术浅析及Python实现
查看>>
RS纠删码
查看>>
reed solomon编码实践
查看>>
纠删码数据中心的最佳修复层:从理论到实践
查看>>
排队论---一般服务时间 M/G/1 模型
查看>>
为什么对高斯分布的方差的极大似然估计是有偏的?
查看>>
TensorFlow分布式采坑记
查看>>
【神经网络】变分自编码大杂烩
查看>>
为程序员写的Reed-Solomon码解释
查看>>
分布式系统下的纠删码技术之Erasure Code
查看>>
【NPC】23、有向汉密尔顿回路规约到无向汉密尔顿回路
查看>>
最小生成树的两种方法(Kruskal算法和Prim算法)
查看>>