后续视图控制器中缺少选项卡栏控制器
Tab Bar Controller missing on subsequent View Controllers
我在 iOS 项目中有以下故事板布局:
布局设置为:
- A 是导航控制器
- B 是介绍视频(导航栏隐藏为全屏视频)
- C 是条款和条件(显示导航栏以显示标题)
- D 是一个标签栏控制器(主屏幕,导航栏显示在此处,带有应用程序徽标)
- E 是五个主屏幕选项卡
- F & G 是两个可以从第一个选项卡 (E) 启动的视图控制器
值得注意的是,将来会有两个额外的视图控制器 link 从 F 的底部编辑,它们都可以 link 回到 G。
问题是 F 和 G View Controller 不显示标签栏。但是他们仍然在顶部显示导航栏。
我确实尝试将 E(最左边的)View Controller 嵌入到它自己的 Navigation Controller 中,然后 F 和 G 确实显示了选项卡栏,但是它随后显示了一个辅助导航栏并且后退导航似乎变得一团糟上/不同步。
我感觉好像我正盯着解决方案,但目前一片空白,所以在我完全秃顶之前,我会感谢任何正确方向的想法或指示
在 Glenn 的帮助下更新..
我进步了。无论出于何种原因,我将第一个选项卡嵌入到它自己的导航控制器中,然后重新创建了转场,这次底部栏出现了。我认为上次我在嵌入选项卡之前没有删除 segues,所以可能是 IDE 或重构问题。
无论如何,进步了,但我仍然看到后退按钮有问题,就像我看到最初的尝试一样。现在按 F 返回 B 而不是 E。我认为这是因为返回仍在使用导航控制器 A。
为 F & G ViewControllers 取消选中 Hide Bottom Bar on Push
可能会解决您的问题。
您缺少的(我相信也是解决它的唯一方法)是将您的 E
控制器嵌入到新的 UINavigationController
中。所以每个 E
都有不同的 navigationController。否则 F
和 G
以及将由您的 E
推送的其他控制器(没有自己的 navigationController)将使用您的 tabBarController 的 navigationController,这仍然很好。
我做了一个示例项目来测试它,我差点忘了这种流程应该是这样的。我用同款屏幕hierarchy/structure.
请记住处理 F
和 G
相关屏幕的转换(弹出和关闭)。
我在 iOS 项目中有以下故事板布局:
布局设置为:
- A 是导航控制器
- B 是介绍视频(导航栏隐藏为全屏视频)
- C 是条款和条件(显示导航栏以显示标题)
- D 是一个标签栏控制器(主屏幕,导航栏显示在此处,带有应用程序徽标)
- E 是五个主屏幕选项卡
- F & G 是两个可以从第一个选项卡 (E) 启动的视图控制器
值得注意的是,将来会有两个额外的视图控制器 link 从 F 的底部编辑,它们都可以 link 回到 G。
问题是 F 和 G View Controller 不显示标签栏。但是他们仍然在顶部显示导航栏。
我确实尝试将 E(最左边的)View Controller 嵌入到它自己的 Navigation Controller 中,然后 F 和 G 确实显示了选项卡栏,但是它随后显示了一个辅助导航栏并且后退导航似乎变得一团糟上/不同步。
我感觉好像我正盯着解决方案,但目前一片空白,所以在我完全秃顶之前,我会感谢任何正确方向的想法或指示
在 Glenn 的帮助下更新..
我进步了。无论出于何种原因,我将第一个选项卡嵌入到它自己的导航控制器中,然后重新创建了转场,这次底部栏出现了。我认为上次我在嵌入选项卡之前没有删除 segues,所以可能是 IDE 或重构问题。
无论如何,进步了,但我仍然看到后退按钮有问题,就像我看到最初的尝试一样。现在按 F 返回 B 而不是 E。我认为这是因为返回仍在使用导航控制器 A。
为 F & G ViewControllers 取消选中 Hide Bottom Bar on Push
可能会解决您的问题。
您缺少的(我相信也是解决它的唯一方法)是将您的 E
控制器嵌入到新的 UINavigationController
中。所以每个 E
都有不同的 navigationController。否则 F
和 G
以及将由您的 E
推送的其他控制器(没有自己的 navigationController)将使用您的 tabBarController 的 navigationController,这仍然很好。
我做了一个示例项目来测试它,我差点忘了这种流程应该是这样的。我用同款屏幕hierarchy/structure.
请记住处理 F
和 G
相关屏幕的转换(弹出和关闭)。