我正在研究一个UISplitViewController
具有主视图控制器的子类UINavigationController
(原因是我需要导航栏)。UINavigationController
有一个FormViewController
作为 rootViewController 的子类。在表单中,我使用 aPushRow
来显示可选选项列表。问题是,当我PushRow
在常规宽度环境中点击时,SelectorViewController
它会被推送到主导航堆栈中。我希望看到SelectorViewController
显示的UISplitViewController
细节。
我创建了一个DummyNavigationController
看起来像这样的:
class DummyNavigationController: UINavigationController {
override init(rootViewController: UIViewController) {
super.init(rootViewController: rootViewController)
}
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func targetViewController(forAction action: Selector, sender: Any?) -> UIViewController? {
if let parent = parent as? UISplitViewController {
return parent.isCollapsed ? self : parent
}
return self
}
}
使用它作为导航控制器,FormViewController
我可以看到SelectorViewController
细节,但我不喜欢这种方法。
还有什么我可以做的吗?