一、定义
通知是一个消息传递机制。发送一个best名字的通知,只有监听该名字的用户才能接收到通知。
通知一对多传递,可以跨层,跨模块。
二、写法
1.注册观察者
[[NSNotificationCenter defaultCenter]addObserver:selfselector:@selector(bestMan)name:@"BestManNoti"object:nil];
2.发送通知
[[NSNotificationCenterdefaultCenter]postNotificationName:@"BestManNoti"object:nil];
3.观察者实现方法
-(void)refreshTableView:(NSNotification*)notification{//处理消息}
4.移除观察者
- (void)dealloc{//移除当前对象监听的事件
[[NSNotificationCenterdefaultCenter]removeObserver:self]; }
三、传值
B控制器向A控制器传值,发通知的一方传值,监听者接收值
1.B控制器发送通知
- (IBAction)sendInfo:(id)sender {
NSString *str = @"传值";
NSDictionary *dict = @{@"key" : str};
[[NSNotificationCenter defaultCenter] postNotificationName:@"strInfoNotifica" object:nil userInfo:dict];
[self.navigationController popViewControllerAnimated:YES];
2.A控制器监听通知
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(bestManNotification:) name:@"strInfoNotifica" object:nil];
}
-(void)bestManNotification:(NSNotification *)infoNotification {
self..text = infoNofification.userInfo[@"key"];
}
-(void)dealloc{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
网友评论