【问题标题】:Keep TabBar when moving to another view controller移动到另一个视图控制器时保留 TabBar
【发布时间】:2016-05-17 05:40:02
【问题描述】:

我有一个这样的故事板

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

【问题讨论】:

    标签: ios swift


    【解决方案1】:

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

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

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

    【讨论】:

    • 所以,每个选项卡都应该有自己的导航控制器?
    • 每个选项卡都应该有自己的导航控制器或视图控制器。取决于用例。
    • @NahoumCohen 不,您不需要,只需将标签栏连接到您希望在标签栏中拥有的每个 vc,选择每个 vc 并执行:编辑器 > 嵌入 > 导航控制器
    • 谢谢dzk,但有点复杂的是我为整个应用程序定制了我的导航栏,现在我必须复制它并验证所有可能的错误......
    • 在这个问题上花了一个小时后,我想放弃......我更新了我的问题
    【解决方案2】:

    如果您想保留 tabBar,您的视图层次结构不应如下所示。

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

    你应该把它改成 -> TabBarController -> NavigationController -> VC1 -> VC2

    【讨论】:

      【解决方案3】:

      首先,您需要确保您的 VC1 到 VC2 的 segue 类型为 (Show e.g. Push)。然后你需要确保 VC1 嵌入到UINavigationController

      【讨论】:

        【解决方案4】:

        NavigationController->TabBarController->NavigationController->First 查看->按钮 点击->FirstDetailsViewController.storyboard(NavigationController 检查是初始视图控制器)

        【讨论】:

          猜你喜欢
          • 2018-05-24
          • 2020-03-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-18
          • 2013-04-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多