IOS开发之利用通知(NSNotification)进行数据传递

来源:互联网 发布:c语言 十进制转换bcd 编辑:程序博客网 时间:2024/05/04 00:55

上篇文章介绍了通知机制及常用的设备通知使用方式,这篇文章就举个例子来实现下利用通知进行数据传递


现在有两个控制器,分别为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];

}



0 0
原创粉丝点击