一尘不染

移至另一个视图控制器时保留TabBar

swift

我有一个这样的故事板

-> 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个导航栏…


阅读 171

收藏
2020-07-07

共1个答案

一尘不染

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

TabBarContoller-> Tab1-> UINavigationController-> ViewContoller1->
ViewContoller2。

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

2020-07-07