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