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

我有这样的故事板

– > NavigationController – > LoginView – > TabBarController – > VC1 – > VC2

我没有设法从VC1“移动”到VC2保持标签栏。

我尝试了以下几点:

  • Segue(显示类型)

    self.performSegueWithIdentifier("toVC2segue", sender: self) 
  • 实例化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) 

但两者都使标签栏消失。

我也试过了

 self.hidesBottomBarWhenPushed = false 

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

你有另一个想法吗?

PS:我在上面更新了我的方案……

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

– > NavigationController – > LoginView – > TabBarController – > NavigationController – > VC1 – > VC2

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

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

TabBarContoller – > Tab1 – > UINavigationController – > ViewContoller1 – > ViewContoller2。

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

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

– > NavigationController – > TabBarController – > VC1 – > VC2

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

首先,您需要确保您的VC1到VC2 segue属于类型(Show eg Push) 。 然后,您需要确保VC1嵌入在UINavigationController 在此处输入图像描述