我想让ViewController F与ViewController C通信。 它们的安排如下: 导航控制器A嵌入ViewController B,它在容器视图中显示ViewController C. 从ViewController B到NavigationController D有一个segue,它嵌入了ViewController E和ViewController F(在E和F之间的segue)。
我目前正在使用的工作解决方案如下:在必要的ViewControllers之间建立一个委托“路径”:ViewController F委托给ViewController E,它委托给ViewController B,最终将信息委托给ViewController C. 感觉必须有一个更简单的方法来做到这一点。 你能推荐一个吗?也许将ViewController C里面的“segue路径”交给ViewController F来设置C和F之间的直接委托?
谢谢!
答案 0 :(得分:2)
我会使用NSNotification
在ViewController F中:
- (void)sendData {
// Fire the notification
[[NSNotificationCenter defaultCenter] postNotificationName:@"ReceivedData"
object:nil];
}
在ViewController C中:
- (void)viewDidLoad {
[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receivedDataNotification:)
name:@"ReceivedData"
object:nil];
}
- (void)receivedDataNotification:(id)object {
NSLog(@"Received Data!");
}