UIViewController包含一个UIViewControllers流

时间:2016-07-08 07:30:08

标签: ios swift uiviewcontroller uinavigationcontroller addsubview

我正在构建一个包含另一个UIViewController内部viewController )的UIViewController外部viewController )。为此,我使用容器视图。现在我希望内部viewController推送到另一个UIViewController,所以我基本上希望内部viewController是UINavigationController的子节点。我知道一旦初始化(不是直接),你就无法改变容器视图的内容,所以我已经碰壁了。

有没有人对我如何在UINavigationController中嵌套UIViewController或者我是否需要重新考虑我对问题的解决方法有任何想法?

2 个答案:

答案 0 :(得分:2)

您可以简单地选择UINavigationController。 使用 InnerViewController 初始化它。

现在,在 OuterViewController UINavigationController as( childViewController + addSubview + didMoveToParentViewController ) >。

现在 InnerViewController 位于UINavigationController内。您可以在UINavigationController上推送您想要的任何内容。

答案 1 :(得分:0)

受到@ 7vikram7的大力启发,我最终得到了一个容器视图,它嵌入了一个UINavigationController,其中我的 InnerViewController 作为其根视图控制器: Screen dump of the basic storyboard setup

在我的 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)
}