Notification传值

接触通知中心很久了,一直也没用过它传值,今天任务完成的比较早,所以做了个小demo,后界面通知中心往前界面传值

发送者视图控制器:

- (void)viewDidLoad {

[super viewDidLoad];

}

- (IBAction)call:(id)sender {

//当输入框内的文字不为空时

if (_aTextfield.text) {

//以输入框的值作为value,以A作为键,存储为字典

NSDictionary *dics = @{@"A":_aTextfield.text};

//创建notification对象,name名字为两个控制器通知的唯一标识

NSNotification *notifications = [[NSNotification alloc] initWithName:@"abc" object:nil userInfo:dics];

[[NSNotificationCenter defaultCenter]postNotification:notifications];

[self dismissViewControllerAnimated:YES completion:nil];

}

}

 接受者视图控制器:

- (void)viewDidLoad {

[super viewDidLoad];

//接受者注册通知中心,name字段和发送者相同

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

}

-(void)abc:(NSNotification *)notif {

_abt.text = notif.userInfo[@"A"];

NSLog(@"%@",_abt.text);

}

注意:dalloc写在创建观察者的控制器里面

- (void)dealloc

{

//消息发送完,要移除掉

[[NSNotificationCenter defaultCenter]removeObserver:self name:@"abc" object:nil];

}

总结:综上所述,通知中心在两个视图控制器关联很少的时候很适合使用,轻量级传值,堪比属性传值

时间: 2024-08-28 02:56:21

Notification传值的相关文章

android notification 传值关键

android notification 传值关键在 onNewIntent方法里获取 @Override protected void onCreate(Bundle savedInstanceState) { processIntent(getIntent()); } @Override protected void onNewIntent(Intent intent) { processIntent(intent); }; private void processIntent(Intent

页面传值--Delegate/Block/KVO/Notification

上一篇讲了Block的页面传值.这里也就顺便把常用的几种页面传值放上来.这里我写了一个Demo:https://github.com/ChenNan-FRAM/TransferDataDemo .想下的可以上去下载来看看. 这里主要把上一篇提到的四种方式说一下(话不多说直接核心代码讲). 1.使用Delegate 2.使用Notification 3.使用Block 4.使用KVO 定义及使用 第二个界面.h 头文件 //定义一个委托协议 @protocol NextVCDelegate <NS

深入了解iOS中的VC切换的传值方式

由于上次面试中有提到相关内容,所以这次我专门深入研究了iOS的几种方式: 首先把所有的传值方式都列出来,如果有遗漏,请指正 首先列出iOS中使用的传值方式: init 传值(即在创建VC的时候就对响应的参数进行设置) property 传值(即属性赋值) Router 传值(这个在OC中被使用,因为作者没有写Swift版本,所以先开个坑,估计我会填坑) Delegate 传值(通过协议和代理传值) 闭包(block)传值 (通过swift中的闭包,类似于OC中的block传值) Notifica

NotificationCenter KVC KVO Delegate总结

KVO(Key-Value- Observing): 一对多, 观察者模式,键值观察机制,它提供了观察某 一属性变化的方法,极大简化了代码. KVO底层实现: - kvo 是基于 runtime 机制实现 - 使用了 isa 混写 isa-swizzling ,当一个对象( 假设是person对象,   person的类是MYPerson)的属性值(假设 person 的 age 属性)发生改变时,系统会自动生成一个类,继承自  MYPerson : NSKVONotifying_MYPerso

(转)iOS面试题目

1.Object-C有多继承吗?没有的话用什么代替?cocoa 中所有的类都是NSObject 的子类 多继承在这里是用protocol 委托代理 来实现的 你不用去考虑繁琐的多继承 ,虚基类的概念. ood的多态特性 在 obj-c 中通过委托来实现. 2.Object-C有私有方法吗?私有变量呢? objective-c – 类里面的方法只有两种, 静态方法和实例方法. 这似乎就不是完整的面向对象了,按照OO的原则就是一个对象只暴露有用的东西. 如果没有了私有方法的话, 对于一些小范围的代码

iOS面试小题集锦

1.Object-C有多继承吗?没有的话用什么代替? cocoa 中所有的类都是NSObject 的子类 多继承在这里是用protocol 委托代理 来实现的你不用去考虑繁琐的多继承 ,虚基类的概念.ood的多态特性 在 obj-c 中通过委托来实现. 2.Object-C有私有方法吗?私有变量呢? objective-c – 类里面的方法只有两种, 静态方法和实例方法. 这似乎就不是完整的面向对象了,按照OO的原则就是一个对象只暴露有用的东西. 如果没有了私有方法的话, 对于一些小范围的代码重

iOS面试攻略下篇:Objective-C面试题和基本概念(1)

文章转自:http://www.educity.cn/develop/1381885.html 1.Object-C有多继承吗?没有的话用什么代替?cocoa 中所有的类都是NSObject 的子类  多继承在这里是用protocol 委托代理 来实现的 你不用去考虑繁琐的多继承 ,虚基类的概念. ood的多态特性 在 obj-c 中通过委托来实现. 2.Object-C有私有方法吗?私有变量呢?  objective-c – 类里面的方法只有两种, 静态方法和实例方法. 这似乎就不是完整的面向

通知传值 notification

@implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.textF = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 40)]; self.textF.borderStyle = 2; self.textF.backgroundColor = [UIColor redColor]; [self.view addSubvi

Notification中PendingIntent的Extras传值问题。

正确的代码如下所示: PendingIntent contentIntent = PendingIntent.getActivity(TestAty.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); MyCode 之前的错误代码如下所示: PendingIntent contentIntent = PendingIntent.getActivity(TestAty.this, 0, intent, 0); MyCode 最后一位是flag,