我的申请结构如下:
1. UITabbarController
1.1 UIViewController
1.2 UINavigationController
1.2.1 UIViewController
1.2.2 UIViewController
1.2.3 UIViewController
它们按以下顺序显示:
1, present -> 1.2, 1.2.1, 1.2.2, 1.2.3
用户使用1.2.3完成其工作后,1.2 NavigationController将被解除。
我希望1.1 UIViewController知道1.2.3已经完成了它的工作
我怎么能实现这个目标?
答案 0 :(得分:3)
您可以使用NSNotificationcenter
轻松执行(但不是性能方式)。
1.1 UIViewController等待通知:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receiveTestNotification:)
name:@"TestNotification"
object:nil];
1.2.3完成工作后,发布通知:
[[NSNotificationCenter defaultCenter]
postNotificationName:@"TestNotification"
object:nil];
答案 1 :(得分:1)
您可以使用通知来实现此目的。
<强>通知强>
通知检查@ Dummy的回答。使用通知的好处是,它减少了对象之间不必要的耦合。
另一个肮脏的伎俩
由于VC 1.1是UITabbarController
的一部分,您可以使用
NSArray *viewControllers = [tabBarController viewControllers];
现在,您可以从viewControllers
阵列访问VC 1.1(可能需要添加iskindofclass
验证),并向其发送消息。
再次,这是一个肮脏的把戏。它仅供参考:)