NSNotificationCenter传值

iOS 页面传值的几种方式之NSNotificationCenter传值

接着上回说的iOS页面传值问题

传送门---------->iOS页面传值之代理传值

接下来我们说说NSNotificationCenter传值方式

在开始之前,我们首先得知道KVO模式

Key-Value Observing (KVO) 键值监听

就是说当你告诉通知中心一个Key 他会根据Value的变化做些事情,或者是获取一些数据

说上千回,不如用上一回。

我们在B控制器发送一个监听

[[NSNotificationCenter defaultCenter] postNotificationName:@"ChangeNameNotification" object:self userInfo:@{@"name":self.textField.text}];

而在A控制器中设置A本身为一个监听者(好比A这时候正在监听它,可以这么理解,一个KVO可以用多个监视者。这里只有一个控制器A)

具体代码

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

再在A控制器中实现ChangeNameNotification:方法

-(void)ChangeNameNotification:(NSNotification*)notification{

NSDictionary *nameDictionary = [notification userInfo];

self.textLabel.text = [nameDictionary objectForKey:@"name"];

}

时间: 2024-08-10 03:02:24

NSNotificationCenter传值的相关文章

iOS 页面传值的几种方式之NSNotificationCenter传值

接着上回说的iOS页面传值问题 传送门---------->iOS页面传值之代理传值 接下来我们说说NSNotificationCenter传值方式 在开始之前,我们首先得知道KVO模式 Key-Value Observing (KVO) 键值监听 就是说当你告诉通知中心一个Key 他会根据Value的变化做些事情,或者是获取一些数据 说上千回,不如用上一回. 我们在B控制器发送一个监听 [[NSNotificationCenter defaultCenter] postNotification

IOS传值--代理传值,block传值,NSNotificationCenter传值

一:利用代理传值,就是利用代理进行通信. 接口文件: #import <Foundation/Foundation.h> @protocol Cdelegate <NSObject> -(void)change:(NSString *)name; @end .h文件 @interface ViewController : UIViewController<Cdelegate> .m文件 - (IBAction)pushBB:(id)sender { BViewContr

通知中心的只用NSNotificationCenter传值 和打电话,发短信,邮件,打开网页的直接打开的功能

通知中心的使用 第一个页面三部; 产生一个通知中心的对象(系统的一个单例类) 在通知中心注册一个观察者 收到通知后调用的方法 dealloc移除观察者的身份 第二个页面 发送通知中心 创建一个字典 返回你要的数据 直接跳转的功能     //直接跳入的功能;     //打电话     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://110"]];     //发短信     [[UIApp

一篇文章学会页面传值的10种方法(下)

一篇文章学会页面传值的10种方法(下) 6.代理委托实现页面之间的反向传值 这一种方法就是运用协议实现传值,这种方式也是在工程中常用的一种传值方法.首先创建好ViewController和SubViewController,在ViewController中创建好一个展示信息的Label,在SubViewController中创建好一个TextFeild,我们实现在第二个界面点击屏幕时,将TextFeild中的文字传到第一个界面,然后让背景颜色变色. 效果如下: 代理传值.gif 第一步: 首先我

通知传值(NSNotificationCenter)

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

NSNotificationCenter 通知中心传值

1.NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量. 这个成员变量是这个消息对象的唯一标识,用于辨别消息对象. @property (readonly, copy) NSString *name;   这个成员变量定义一个对象,可以理解为针对某一个对象的消息. @property (readonly, retain) id object;   这个成员变量是一个字典,可以用其来进行传值. @property (readonly, copy) NSDictionar

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

IOS 支付宝、微信回调传值给H5网页

这里用是的苹果原生和JS的交互 .有不明白JavaScriptCore框架的可以去网上搜索下这方面的资料很多废话不多说直接上代码 @protocol JSContextDelegate <JSExport>//这里面写H5,也就是网页端定义的方法- (void)isLogin;//如判断用户有没有登录@end @interface HtmlShopingViewController ()< JSContextDelegate>@property (nonatomic, strong

控制器之间反向传值

控制器之间反向传值 委托(代理) 首先我们定下一个协议protocol 1. #import <Foundation/Foundation.h>2.3. @protocol ChangeText <NSObject>4.5. -(void)changeText:(NSString *)str;6. @end 控制器a遵守协议ChangeText,并实现协议的方法,控制器b公开自己的一个遵守协议ChangeText的属性delegate,在控制器a的视图转到控制器b的视图时,b.de