iOS通知3种使用方法

NSNotification 的3种使用方式

  • 1、不传递参数, 最常用的一种
// 发送通知
-(void)btn1Click{
[[NSNotificationCenter defaultCenter] postNotificationName:@"notifyName1" object:nil]; } //注册通知(接收,监听,一个通知) [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notification1) name:@"notifyName1" object:nil]; //实现方法 -(void)notification1{ NSLog(@"接收 不带参数的消息"); } 
  • 2、使用object 传递消息
//发通知
-(void)btn2Click:(UIButton *)btn{
[[NSNotificationCenter defaultCenter] postNotificationName:@"notifyName2" object:[NSString stringWithFormat:@"%@",btn.titleLabel.text]]; } //注册通知(接收,监听,一个通知) [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notification2:) name:@"notifyName2" object:nil]; //实现方法 -(void)notification2:(NSNotification *)noti{ //使用object处理消息 NSString *info = [noti object]; NSLog(@"接收 object传递的消息:%@",info); } 
  • 3、使用userInfo 传递消息
//发通知

-(void)btn3Click{

NSDictionary *dic = [NSDictionary dictionaryWithObject:@"userInfo消息" forKey:@"param"]; [[NSNotificationCenter defaultCenter] postNotificationName:@"nitifyName3" object:nil userInfo:dic]; } //注册通知(接收,监听,一个通知) [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notification3:) name:@"nitifyName3" object:nil]; //实现方法 -(void)notification3:(NSNotification *)noti{ //使用userInfo处理消息 NSDictionary *dic = [noti userInfo]; NSString *info = [dic objectForKey:@"param"]; NSLog(@"接收 userInfo传递的消息:%@",info); } 最后,在[接收]消息的页面,在dealloc方法里面移除观察者。 -(void)dealloc{ //移除观察者 [[NSNotificationCenter defaultCenter] removeObserver:self]; }




猜你喜欢

转载自www.cnblogs.com/-ios/p/10608973.html
今日推荐