【问题标题】:Tab Bar Controller missing on subsequent View Controllers后续视图控制器上缺少选项卡栏控制器
【发布时间】:2019-06-24 18:10:56
【问题描述】:

我在 iOS 项目中有以下情节提要布局:

布局是这样设置的:

  • A 是导航控制器
  • B 是介绍视频(导航栏隐藏为全屏视频)
  • C 是条款和条件(显示导航栏以显示标题)
  • D 是一个标签栏控制器(主屏幕,导航栏显示在此处,并带有应用徽标)
  • E 是五个主屏幕标签
  • F 和 G 是两个视图控制器,可以从第一个选项卡 (E) 启动

值得注意的是,将来会有两个额外的视图控制器从 F 的底部链接,它们都可以链接回 G。

问题是 F 和 G 视图控制器不显示标签栏。但是,它们仍然会在顶部显示导航栏。

我确实尝试将 E(最左侧)视图控制器嵌入到它自己的导航控制器中,然后 F 和 G 确实显示了标签栏,但是它随后显示了辅助导航栏,并且后退导航似乎搞砸了/不同步。

我觉得好像我正盯着解决方案,但目前画的是空白,所以在我完全秃顶之前,我会欣赏任何正确方向的想法或指示

在 Glenn 的帮助下更新..

我已经取得了进步。无论出于何种原因,我将第一个选项卡嵌入到它自己的导航控制器中,然后重新创建了 segues,这次出现了底栏。我想上次我在嵌入选项卡之前没有删除 segues,所以可能是 IDE 或重构问题。

无论哪种方式,进展,但我仍然看到后退按钮的问题,因为我看到了最初的尝试。按下 F 现在返回到 B 而不是 E。我认为这是因为 back 仍在使用导航控制器 A。

【问题讨论】:

  • 抱歉,我没有测试项目。我正在对 B 到 C 和 D、C 到 Dand E 到 F 和 G 使用 push segues。在 A -> B 和 D 到 E 之间看到的链接是关系。我希望这是有道理的。
  • 你还好吗E to F/G?PerformSegue?
  • 正确。 performSegue withIdentifier
  • 在这种情况下,您能做的最好的事情(对我来说也是理想的方式)是让B 呈现CD。我已经使用这种流程完成了很多生产 iOS 项目,即使在我目前的全职工作中,我也是这样做的。
  • 试试这个。这是我的 Main.Storyboard 的代码。您可以创建一个新项目。打开 Main.Storyboard 作为源代码,然后粘贴此要点:gist.github.com/glennposadas/4103ea81f435529cec760ca93a773997

标签: ios uinavigationcontroller uitabbarcontroller uistoryboard


【解决方案1】:

您缺少的(我相信唯一的解决方法)是将您的E 控制器嵌入到新的UINavigationController 中。所以每个E 都有不同的navigationController。否则F & G 和其他将由您的E 推送的控制器(没有自己的navigationController)将使用您的tabBarController 的navigationController,这仍然很好。

我确实做了一个示例项目来测试它,但我几乎忘记了这种流程应该是这样的。我使用相同类型的屏幕层次结构/结构。

请记住处理FG 相关屏幕的转换(弹出和关闭)。

【讨论】:

  • 谢谢,这就是我在问题中提到的尝试。然而,这种方法似乎在顶部引入了第二个导航栏,然后后退按钮也没有显示在导航栏上——也许我错过了一些东西。您是否在测试应用中看到了同样的情况?
  • 没有嗯。那不应该发生。请参阅我的编辑。再次检查你的segues。将 navigationController 添加到 E 屏幕时,只需单击屏幕黄色顶部图标,然后单击 EDITOR -> Embed In -> NavigationController。
  • 谢谢 - 我会再次检查一切并回复您。我觉得你是对的,并且该选项卡需要嵌入到它自己的 NavigationController 中,因为在我发布这个问题之前它已经部分工作了。我可能使用了错误的segue。一旦我检查了我的应用程序,稍后会将您的答案标记为已接受。感谢您的帮助:)
  • 好的。没问题。
【解决方案2】:

取消选中 Hide Bottom Bar on Push for F & G ViewControllers 可能会解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    相关资源
    最近更新 更多