上篇文章介绍了通知机制及常用的设备通知使用方式,这篇文章就举个例子来实现下利用通知进行数据传递
现在有两个控制器,分别为OneViewController、TwoViewController
点击OneViewController中的button发出通知,并且TwoViewController接收通知打印OneViewController中传递过来的值
- (void)buttonClick{
//添加 字典,将label的值通过key值设置传递
NSDictionary *dict = [[NSDictionary alloc]initWithObjectsAndKeys:self.textFieldOne.text,@"textOne",self.textFieldTwo.text,@"textTwo",nil];
//创建通知
NSNotification *notification =[NSNotification notificationWithName:@"sendOne" object:nil userInfo:dict];
//通过通知中心发送通知
[[NSNotificationCenter defaultCenter] postNotification:notification];
[self.navigationController popViewControllerAnimated:YES];
}
在发送通知后,在TwoViewController控制器中注册通知监听者,将通知发送的信息接收
- (void)viewDidLoad {
[super viewDidLoad];
//注册通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(send:)name:@"sendOne" object:nil];
}
//将会把userInfo本身作为参数传进来
- (void)send:(NSNotification *)queue {
NSLog(@"%@",queue.userInfo[@"textOne"]);
NSLog(@"%@",queue.userInfo[@"textTwo"]);
NSLog(@"-----接收到通知------");
}
//销毁时移除通知
-(void)dealloc{
[[NSNotificationCenter defaultCenter]removeObserver:self];
}