从UITabBarController选项卡根视图显示UINavigationController

时间:2019-04-02 04:21:47

标签: ios swift uinavigationcontroller uitabbarcontroller

我想展示一个来自标签栏控制器的标签的根视图控制器的导航控制器,并使来自标签栏控制器的标签可见。

这是一个示例情节提要的照片: enter image description here

标签栏控制器与ItemOneViewController的关系如下实现:

import UIKit

class ItemOneViewController: UIViewController {

  private func presentNavigationController() {

    let id = "NavController"
    guard let vc = storyboard?.instantiateViewController(withIdentifier: id) else { return }

    present(vc, animated: true)
  }

  override func viewDidAppear(_ animated: Bool) {

    super.viewDidAppear(animated)
    presentNavigationController()
  }
}

我希望通过在选项卡栏控制器上显示选项卡的根视图控制器中的导航控制器,将导航控制器显示在选项卡的后面,但是当我运行所描述的应用程序时,这就是模拟器的样子:

enter image description here

这是视图层次结构的样子:

enter image description here

我想我记得以前的一位同事提到UINavigationController将替换视图堆栈,这很有意义,但是无论如何要保留它或将UITabBarController带到视图堆栈?

我尝试调整演示文稿的样式和上下文,但没有任何运气。

2 个答案:

答案 0 :(得分:0)

尝试将ItemOneViewController嵌入到Navigation Controller中,而不是将ViewController VC嵌入到Navigation Controller中。

答案 1 :(得分:0)

从情节提要中选择 ItemOneViewController

转到编辑器并嵌入导航控制器

enter image description here

您在Storyboard上的视图层次看起来像这样:

enter image description here