【发布时间】:2014-01-13 19:45:06
【问题描述】:
我有这个UISplitViewController,它的主VC和细节VC都是UINavigationController的子类。
两者应该“同步”工作,即当一个推新的 VC 时,第二个也必须推一个。当一个弹出时,另一个也必须弹出。一个总是对另一个触发相同的操作。
我已经能够处理问题的推送部分,因为推送功能在我使用的每个类中都是显式的。
另一方面,弹出是一个大问题。当用户按下后退按钮时触发该操作,我不知道如何检测此事件。一种可能的解决方案是检测事件。
我想到的另一个解决方案是覆盖UINavigationController 的- popViewControllerAnimated:,让一个类弹出另一个类,就像这样:
// On DetailNav
- (UIViewController *)popViewControllerAnimated:(BOOL)animated {
// Code to make MasterNav pop
return [super popViewControllerAnimated:animated];
}
// On MasterNav
- (UIViewController *)popViewControllerAnimated:(BOOL)animated {
// Code to make DetailNav pop
return [super popViewControllerAnimated:animated];
}
我没有费心添加完整的代码,因为这足以注意到这种方法会导致无限循环,最终将两个 NavController 弹出到它们的根(然后可能崩溃)。
实现所需行为的最佳方法是什么?
【问题讨论】:
标签: ios uinavigationcontroller uisplitviewcontroller