NSNotification--通知传值

NSNotification

最近做练习项目发现在一个没有控制器的UIView下puch到UIViewcontroller;需要用到通知传值

通知传值是一对多的传值方法;

通知中心传值,可以跨越多个页面传值, 一般也是从后面的页面传给前面的页面。
 
思路:
第三个界面的值传给第一个界面。
1. 在第一个界面建立一个通知中心, 通过通知中心,注册一个监听事件
 
2. 在第一个界面中,设置接收到通知的事件。
 
3. 在第一个界面中的dealloc中, 将通知中心remove掉,一定要移除通知,否则会造成内存泄露;
 
4. 在第需要的界面中, 建立一个通知中心, 通过通知中心, 发送通知(发送通知的过程就是传值的过程,将要传输的值作为object的值传给第一个界面 
代码:
 
在第一界面

 //添加 字典,将label的值通过key值设置传递

    NSDictionary *dict =[[NSDictionary alloc] initWithObjectsAndKeys:[NSString stringWithFormat:@"%d",(int)aBtn.tag],@"aBtn.tag", nil];

    //创建通知

    NSNotification *notification =[NSNotification notificationWithName:@"PUCH" object:nil userInfo:dict];

    //通过通知中心发送通知

    [[NSNotificationCenter defaultCenter] postNotification:notification];

 

移除通知:

[[NSNotificationCenter defaultCenter] removeObserver:observer name:nil object:self];

 

在需要的界面:

  //注册通知

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tongzhi:) name:@"PUCH" object:nil];

- (void)tongzhi:(NSNotification *)puch{

    NSLog(@"%@",puch.userInfo[@"aBtn.tag"]);

    NSLog(@"-----接收到通知------");}

 http://www.cnblogs.com/lmyailgs/p/4460791.html 

posted @ 2015-04-27 17:34  恣愛仪  阅读(1642)  评论(0编辑  收藏  举报