移动到另一个视图控制器时保持TabBar

Nah*_*uto 5 ios swift

我有这样的故事板

- > NavigationController - > LoginView - > TabBarController - > VC1 - > VC2

我没有设法从VC1"移动"到VC2保持标签栏.

我尝试了以下几点:

  • Segue(显示类型)

    self.performSegueWithIdentifier("toVC2segue", sender: self)
    
    Run Code Online (Sandbox Code Playgroud)
  • 实例化programmaticaly:

    // prepare for future display
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let navigationVC = UIApplication.sharedApplication().keyWindow?.rootViewController as! UINavigationController
    
    // prepare next view
    let vc = storyboard.instantiateViewControllerWithIdentifier("VC2id")
    
    self.tabBarController?.navigationController?.pushViewController(vc, animated: true)
    
    Run Code Online (Sandbox Code Playgroud)

但两者都使标签栏消失.

我也试过了

self.hidesBottomBarWhenPushed = false
Run Code Online (Sandbox Code Playgroud)

但这并没有改变任何事情.

你有其他想法吗?

PS:我上面更新了我的计划......

编辑:阅读下面的答案后,我尝试添加另一个导航控制器:

- > NavigationController - > LoginView - > TabBarController - > NavigationController - > VC1 - > VC2

但我现在有2个导航条叠加在VC1和VC2中......

sal*_*aha 7

您需要将TabBarContoller设置为应用程序的rootViewController.所以方案应该如下:

TabBarContoller - > Tab1 - > UINavigationController - > ViewContoller1 - > ViewContoller2.

在这种情况下,您可以在ViewContoller1和ViewContoller2之间导航,TabBarContoller将保持可见.


xou*_*ini 5

如果要保留tabBar,则视图层次结构不应如此.

- > NavigationController - > TabBarController - > VC1 - > VC2

您应该将其更改为 - > TabBarController - > NavigationController - > VC1 - > VC2