移动到另一个视图控制器时保持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