我正在构建一个包含另一个UIViewController
(内部viewController )的UIViewController
(外部viewController )。为此,我使用容器视图。现在我希望内部viewController推送到另一个UIViewController
,所以我基本上希望内部viewController是UINavigationController
的子节点。我知道一旦初始化(不是直接),你就无法改变容器视图的内容,所以我已经碰壁了。
有没有人对我如何在UINavigationController
中嵌套UIViewController
或者我是否需要重新考虑我对问题的解决方法有任何想法?
答案 0 :(得分:2)
您可以简单地选择UINavigationController
。
使用 InnerViewController 初始化它。
现在,在 OuterViewController UINavigationController as( childViewController + addSubview + didMoveToParentViewController ) >。
现在 InnerViewController 位于UINavigationController
内。您可以在UINavigationController
上推送您想要的任何内容。
答案 1 :(得分:0)
受到@ 7vikram7的大力启发,我最终得到了一个容器视图,它嵌入了一个UINavigationController
,其中我的 InnerViewController 作为其根视图控制器:
在我的 InnerViewController 中,我现在可以推送到任何UIViewController
,并控制我的导航堆栈,例如:
override func viewDidLoad() {
super.viewDidLoad()
// Hide the navigation bar
self.navigationController?.setNavigationBarHidden(true, animated: false)
// Push to whatever viewController I want to
let viewController = self.storyboard?.instantiateViewControllerWithIdentifier("myAwesomeViewController") as! AwesomeViewController
self.navigationController?.pushViewController(viewController, animated: true)
}