我有一个这样的故事板
-> NavigationController-> LoginView-> TabBarController-> VC1-> VC2
我没有设法从VC1到VC2进行“移动”并保持选项卡栏。
我尝试了以下方法:
Segue(显示类型)
self.performSegueWithIdentifier("toVC2segue", sender: self)
以编程方式实例化:
// 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
但是我现在在VC1和VC2中叠加了2个导航栏…
您需要将TabBarContoller设置为应用程序的rootViewController。因此方案应如下:
TabBarContoller-> Tab1-> UINavigationController-> ViewContoller1-> ViewContoller2。
在这种情况下,您可以在ViewContoller1和ViewContoller2之间导航,并且TabBarContoller将保持可见。