gpt4 book ai didi

ios - 将 UINavigationController 添加到 UITabBarController,而不在所有 View 中显示标签栏

转载 作者:行者123 更新时间:2023-12-01 12:52:41 27 4
gpt4 key购买 nike

我目前有带导航 Controller 的标签栏 Controller ,如described here .

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

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

当前的流程如图所示:

storyboard with flow

所需导航示例

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

enter image description here

但是,“第三 View ”和“第四 View ”应该只有导航 Controller (没有标签栏):

enter image description here

实际(带标签栏)与预期(期望的结果是没有标签栏的 View ):

enter image description here

未建议的解决方案

enter image description here

获得所需流程的一种可能方法是创建一个导航 Controller ,然后将其连接到选项卡栏 Controller 。然而,Apple 不推荐将其作为 UI 模式(Apple 文档建议使用上述方法),并会导致几个细微的错误:

  • 无法再在选项卡栏 Controller 中重新排列选项卡,因为它们消失了
  • 无法从 Storyboard 为“Second View”设置导航标题
  • Editor > Embed in > Navigation Controller 对于 Tab Bar Controller 是灰色的(因为这不是推荐的做法),所以你必须手动创建它

最佳答案

UIViewController 有一个属性 hidesBottomBarWhenPushed。在 ThirdViewControllerFourthViewControllerviewDidLoad 中将其设置为 true

更新

您当前的 View Controller 层次结构完全没问题。不要将其更改为其他任何内容。

更新 2

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

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

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

enter image description here

关于ios - 将 UINavigationController 添加到 UITabBarController,而不在所有 View 中显示标签栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41644319/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com