繁体   English   中英

将UINavigationController添加到UITabBarController,而不显示所有视图中的Tab Bar

[英]Add UINavigationController to UITabBarController without Tab Bar showing up in all views

我目前有带有导航控制器的标签栏控制器,如此处所述

因此,标签栏显示在每个视图下方。

有没有办法使用Storyboard隐藏连续屏幕上的标签栏,这些屏幕没有直接连接到标签栏控制器。

电流如下图所示:

故事板与流程

所需导航的示例

例如,“Second View”应该与导航控制器一起显示,因为它是Tab Bar Controller的直接子节点。

在此输入图像描述

但是,“第三视图”和“第四视图”应该只有导航控制器(没有标签栏):

在此输入图像描述

实际(使用标签栏)与预期结果(所需结果是没有标签栏的视图):

在此输入图像描述

未建议的解决方案

在此输入图像描述

获得所需流程的一种可能方法是创建导航控制器,然后将其连接到Tab Bar Controller。 但是,这不建议Apple作为UI模式(Apple文档建议使用上述方法),并导致一些微妙的错误:

  • 无法再重新排列标签栏控制器中的标签,因为它们会消失
  • 无法从Storyboard中为“Second View”设置导航标题
  • 编辑器>嵌入>导航控制器显示为标签栏控制器(因为它不是推荐的做法),因此您必须手动创建它

UIViewController有一个属性hidesBottomBarWhenPushed ThirdViewControllerFourthViewController viewDidLoad ThirdViewController其设置为true

UPDATE

您当前的视图控制器层次结构完全正常。 不要将其改为其他任何东西。

更新2

你是对的viewDidLoad还不够好。 使用init?(coder:)

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    hidesBottomBarWhenPushed = true
}

或者在Interface Builder中设置一个标志。

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM