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

2017 年 4 月 25 日 0 条评论 1.42k 次阅读 0 人点赞

在不相关的两部分代码中要想进行消息传递,通知(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;
    ...
}

雷雷

这个人太懒什么东西都没留下

文章评论(0)

(Spamcheck Enabled)