答案 0 :(得分:7)
更改故事板设计:
将TabBar View Controller设置为初始ViewController
将UINavigationViewController设置为每个选项卡的根视图控制器
毕竟,您的设计结构看起来就像提到图像
答案 1 :(得分:1)
您的问题存在是因为您的UITabViewController
已嵌入您初始化为初始控制器的导航堆栈中。
您必须重新构建内容,以便标签栏控制器选项卡打开到新的导航堆栈。
UINavigationController
,你不需要它(如果你不想使用push segue,请使用模式segue,然后你就不会引用它回到那个UINavigationController
的viewController堆栈
在UITabViewController
UIViewControllers
中的每一个嵌入您的
UITabViewController
位于单独的UINavigationController
。现在,您可以在UITabViewController's
标签
答案 2 :(得分:0)
你应该意识到你的观点结构。
现在,您首先拥有一个NavigationController,其rootViewController是一个Tab BarController。
NavigationController[0] = TabBarController
你的TabBarController有2个ViewController(控制器1和控制器2)
NavigationController[0] = TabBarController
然后它包括2个控制器,如
TabBarController[0] = Controller 1
TabBarController[1] = Controller 2
致电
self.navigationController.pushViewController
这意味着NavigationController推送到Controller 3, 所以控制器3不会显示标签栏,因为它不在TabBarController中。
如果你想推到控制器3并仍然有标签栏, 你可以在Controller 1中插入一个容器(或插入一个View), 并像这样创建一个NavigationController
let nav = NavigationController(rootViewController: yourController1)
self.yourViewInsertedInController1.addSubview(nav.view)
然后在yourController1中运行
self.navigationController.pushViewController
这是对的。
答案 3 :(得分:-1)
要将视图控制器添加到选项卡栏控制器的视图控制器阵列,请从标签栏控制器拖动到该视图控制器,同时按住Control键。选择关系Segue>从出现的菜单中查看控制器。