iOS_通知中心_传值的一种方法

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   defaultCenter removeObserver : self ];
    [
super   dealloc ];
    
}

第二界面: 
     // 创建一个通知中心
           NSNotificationCenter  *center = [ NSNotificationCenter   defaultCenter ];
     
     // 发送通知. 其中的Name填写第一界面的Name, 系统知道是第一界面来相应通知, object就是要传的值。 UserInfo是一个字典, 如果要用的话,提前定义一个字典, 可以通过这个来实现多个参数的传值使用。

          [center  postNotificationName : @"cesuo"   object : @"zhangheng"   userInfo :dic];


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值