程序员人生 网站导航

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

栏目:互联网时间:2014-11-11 08:28:19
NSNotification
通知中心传值,可以逾越多个页面传值, 1般也是从后面的页面传给前面的页面。

思路:
第3个界面的值传给第1个界面。
1. 在第1个界面建立1个通知中心, 通过通知中心,注册1个监听事件

2. 在第1个界面中,设置接收到通知的事件。

3. 在第1个界面中的dealloc中, 将通知中心remove掉

4. 在第3个界面中, 建立1个通知中心, 通过通知中心, 发送通知(发送通知的进程就是传值的进程,将要传输的值作为object的值传给第1个界面 

代码片断:
第1界面:
     //通知中心是个单例
     NSNotificationCenter *notiCenter = [NSNotificationCenter defaultCenter];

     // 注册1个监听事件。第3个参数的事件名, 系统用这个参数来区分不同事件。
     [notiCenter addObserver:self selector:@selector(receiveNotification:) name:@"cesuo" object:nil];

     // @selector(receiveNotification:)方法, 即遭到通知以后的事件
     - (void)receiveNotification:(NSNotification *)noti
{
   
     // NSNotification 有3个属性,name, object, userInfo,其中最关键的object就是从第3个界面传来的数据。name就是通知事件的名字, userInfo1般是事件的信息。
    NSLog(@"%@ === %@ === %@", noti.object, noti.userInfo, noti.name);

 }
     
     // 第1界面中dealloc中移除监听的事件
- (void)dealloc
{
    
// 移除当前对象监听的事件
    [[
NSNotificationCenter defaultCenterremoveObserver:self];
    [
super dealloc];
    
}

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

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


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐