使用通知中心NSNotificationCenter实现不同的视图控制器的参数传递


在不相关的两部分代码中要想进行消息传递,通知(notifacation)是非常好的一种机制,它可以对消息进行广播。特别是想要传递丰富的信息,并且不一定指望有谁对此消息关心。

通知可以用来发送任意的消息,甚至包含一个userInfo字典,或者是NSNotifacation的一个子类。通知的独特之处就在于发送者和接收者双方并不需要相互知道。这样就可以在非常松耦合的模块间进行消息的传递。记住,这种消息传递机制是单向的,作为接收者是不可以回复消息的。

实现步骤如下:

1.首先注册要接收Notification的对象到NSNotificationCenter。

在 发送者.m 中:

- (void)AddbtnClick:(UIButton *)Btn
{
   WeekCourse *newcourse = _coursesArray[Btn.tag];   
    //第一步注册通知
    [[NSNotificationCenter defaultCenter]postNotificationName:@"addNotification" object:newcourse];
}

2.发送Notification通知呢:

在需要传递参数的代码部分,发送消息通知

在接受者.m 中:

//第二步,通知中心,发送一条消息通知
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(add:) name:@"addNotification" object:nil];

3.处理通知

在接收者.m中:

- (void)add:(NSNotification *)notification
{
    WeekCourse *weekcourse = notification.object;
    ...
}




你可能感兴趣的:(IOS开发)