【问题标题】:Push segue from a view controller controlled by UITabBarController从由 UITabBarController 控制的视图控制器推送 segue
【发布时间】:2013-01-19 14:14:29
【问题描述】:

假设第一个视图控制器与一个 UITabBarController 连接,我想从第一个视图控制器向第二个视图控制器进行推送。

从我的谷歌搜索来看,来自与 UITabBarController 连接的视图控制器的模态转场似乎隐藏了底部标签栏,而推送转场则没有。 但是,我的 push segue 也将我的标签栏隐藏在第二个视图控制器中。我在第一个视图控制器中重写了 prepareForSegue 方法。

下面是我的故事板和模拟器的图像。任何人都知道为什么会这样?预先感谢您的帮助。

【问题讨论】:

    标签: ios uitabbarcontroller storyboard uitabbar segue


    【解决方案1】:

    您的问题是因为您的 tabViewController 嵌入在您使用登录屏幕初始化的导航堆栈中。

    您需要重新排列,以便您的每个标签栏控制器标签打开到一个新的导航堆栈。

    我的建议

    • 您的登录屏幕应该导航到您的标签栏控制器,其中包含模态/呈现转场,而不是推送转场。删除包含登录屏幕的 navController,您不需要它(好吧,即使您保留它,也不要使用 push segue,使用模态 segue,然后您就不会再引用该 navController 的 viewController 堆栈从您的标签栏内)。

    • 将第一个 viewController 中的每个 viewController 嵌入到单独的 navController 中。

    现在您可以在 tabViewController 的选项卡中推送 segue。

    【讨论】:

    • 非常感谢 :) 我一直在寻找这个解决方案几个小时,这解决了我所有的问题!现在我对 UINavigationController 的工作原理有了更多了解。再次,非常感谢!
    • 谢谢,这个答案也帮助了我。我刚遇到这个问题,搜索了一下,5分钟后,有了这个帖子,就可以解决了。
    • 这个答案今天让我头疼不已
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    相关资源
    最近更新 更多