有的时候需要在两个Controller之前发送消息传递数据或者事件,这样时候会用到这样的消息功能,我用了NSNotificationCenter,mark一下,免得自己忘了。
1,注册要收听的事件并且和回调函数联系起来:
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver: self
selector: @selector(handleRotateWithDistance:)//回调函数
name: @"RotateWithDistance"//通知的名称
object: nil];
一般是在生命周期的Appear时添加这样的注册。
2,消息的发送端在某种情况下发送消息
NSString *strDirection = [NSString stringWithFormat:@"%ld", (long)direction];//要发送的消息的附带数据
NSDictionary *postData = [NSDictionary dictionaryWithObjectsAndKeys:strDirection,@"direction",nil];
NSNotificationCenter *notification = [NSNotificationCenter defaultCenter];
[notification postNotificationName:@"RotateWithDistance" object:self userInfo:postData];
3.消息接受端收到消息后在回调函数中的处理:
NSString *direction = [[notification userInfo] valueForKey:@"direction"];
4.移除消息
[notificationCenter removeObserver:self name:@"RotateWithDistance" object:nil];
一般是在生命周期的DisApear的时候。