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

时间: 2024-10-28 17:45:14

NSNotification--通知传值的相关文章

iOS利用通知(NSNotification)进行传值

通知 是在跳转控制器之间常用的传值代理方式,除了代理模式,通知更方便.便捷,一个简单的Demo实现通知的跳转传值. iOS通知传值的使用 输入所要发送的信息 ,同时将label的值通过button方法调用传递, - (IBAction)buttonClick:(id)sender { //添加 字典,将label的值通过key值设置传递 NSDictionary *dict =[[NSDictionary alloc] initWithObjectsAndKeys:self.textFieldO

iOS pop使用通知传值

iOS pop回父级页面,使用通知传值 输入所要发送的信息 ,同时将label的值通过button方法调用传递, - (IBAction)buttonClick:(id)sender { //添加 字典,将label的值通过key值设置传递 NSDictionary *dict =[[NSDictionary alloc]initWithObjectsAndKeys:self.textFieldOne.text,@"textOne",self.textFieldTwo.text,@&q

通知传值(NSNotificationCenter)

通知传值 //流程: 1.注册通知 2.通知中心,发送一条消息通知----------其中name名字千万不要写错了,会出现在3个地方 3.实现通知中心内部的方法,并实现传值 4.第四步,消息发送完,要移除掉 代码如下: #import "FirstViewController.h" #import "SecondViewController.h" #import "UIButton+Create.h" @interface FirstViewC

几个页面跳转以及传值(通知传值)

A→B→C→D→A 其中A不是根目录,但是在D上还要跳转回去,并且不用alloc,这时我们可以用如下方法 [self.navigationController popToViewController: [self.navigationController.viewControllers objectAtIndex: ([self.navigationController.viewControllers count] -4)] animated:YES]; 并且D要传值给A,这时通知就很好用了 通

iOS 页面跳转传值,属性传值,代理传值,代码块传值,单例传值,通知传值

有时候我们在页面跳转的时候回传递相应的参数,如,你想把在第一个页面的文本框里的内容显示在第二个文本框中,或者你又想把第二个文本框中的内容改变之后到第一个页面的文本框中,所有,这个时候我们就要用到页面跳转传值 1.属性传值(正向传值) 属性传值是正向传值,只可以从前面一个页面传递到第二个页面,不可以从第二个页面传递到第一个页面 2.代理传值(逆向传值) 代理传值是逆向传值 代理传值步骤 代理传值 适用于 反向传值 1.1 创建协议 及协议方法 在反向传值的页面(SecondViewControll

iPhone开发 Swift - NSNotification 通知

Swift创建Notification通知 创建一个SingleView Application 打开AppDelegate.swift,在方法 application(application:UIApplication,didFinishLaunchingWithOptions launchOptions: NSDictionary?) 中输入代码: func application(application: UIApplication, didFinishLaunchingWithOptio

How Not to Crash #3: NSNotification通知引起的崩溃

How Not to Crash #3: NSNotification通知引起的崩溃html, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0px; padding: 0px; height: auto; bottom: 0px; top: 0px; left: 0px; right: 0px; font-family: 'Helvetica Neue', Helvetica, Ar

iOS通知传值的使用

通知 是在跳转控制器之间常用的传值代理方式,除了代理模式,通知更方便.便捷,一个简单的Demo实现通知的跳转传值. 输入所要发送的信息 ,同时将label的值通过button方法调用传递, - (IBAction)buttonClick:(id)sender { //添加 字典,将label的值通过key值设置传递 NSDictionary *dict =[[NSDictionary alloc]initWithObjectsAndKeys:self.textFieldOne.text,@"te

整理一下 通知传值 Block传值

Block: 一. (1) 在需要传值的界面定义属性 // 点击collectionViewCell的回调 @property (nonatomic, copy) void(^DidcollectionClick)(NSIndexPath *indexPath); 在按钮或者手势 或者代理方法中 执行block - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPa

【iOS开发-65】QQ聊天界面案例:自定义cell、图片拉伸处理、NSNotification通知、键盘与视图移动以及输入框左边缩进处理

(1)案例 (2)源代码于素材下载 http://pan.baidu.com/s/1bnpiBCz (3)总结 --还是代码封装.控制器.视图.模型分别独立.里面还有很多代码可以独立出来整一个类. --如果某一个值只有特定的几个数字,那么可以用枚举来定义,注意命名规范 typedef enum{ WPMessageTypeMe=0, WPMessageTypeOther=1 }WPMessageType; --依然是计算一段文字所占据的宽和高 CGSize textMaxSize=CGSizeM