【问题标题】:can't make tab bar hidden when using container views使用容器视图时无法隐藏标签栏
【发布时间】:2013-05-15 16:52:12
【问题描述】:

我的应用程序使用视图控制器,每个控制器包含 2 个容器视图,作为标签栏控制器和导航控制器之间的中介。这是为了管理嵌入在每个中介的容器视图之一中的菜单。

我需要隐藏标签栏(又名底栏)。

我尝试将setHidesBottomBarWhenPushed:YES 发送到每个视图控制器,并且我尝试在故事板中为每个 VC 选择“隐藏底部栏”。

为什么这些东西不起作用?我认为这一定与我的架构有关:

如您所见,导航控制器嵌入在容器视图中,其 VC 链接到标签栏控制器。

在这种情况下如何隐藏标签栏?

【问题讨论】:

  • 首先需要容器视图吗?您可以将导航控制器嵌入到链接到标签栏控制器的 VC 中。
  • 当然我有它是有原因的。嵌入式 VC 中有两个容器。一个被可见菜单覆盖的较小的嵌入菜单,见左下角。

标签: ios objective-c xcode uitabbarcontroller


【解决方案1】:

setHidesBottomBarWhenPushed:与可以添加到导航控制器的可选工具栏有关,而不是标签栏。我认为如果你添加行 self.tabBarController.tabBar.hidden = YES;对于每个选项卡中的初始控制器(具有容器视图的控制器),它将隐藏选项卡栏。不过我认为,它会在标签栏所在的底部留下一个空间。我不确定解决这个问题的最佳方法是什么。也许,如果你隐藏了标签栏,你根本不应该使用标签栏控制器。

【讨论】:

  • 好的,谢谢,这一切都准确...包括底部的栏的部分,这显然是不可避免的。将标签栏控制器替换为显示/关闭/跟踪一组 VC 的虚拟控制器将花费更多的精力/代码,但我想这就是我必须做的。
  • 啊啊终于找到了解释如何成功移除标签栏和黑框的答案:stackoverflow.com/questions/8903569/…
  • @mkc842,我想知道苹果会不会对你在标签栏控制器的子视图中乱搞有问题?我知道他们不会接受使用私有方法,我不知道私有视图(私有视图是指没有任何 api 来访问它们而无需搜索层次结构的视图)。
  • 感谢您的提醒,我想我最好做一些研究。隐藏标签栏并不容易,这似乎很疯狂,因为标签栏控制器添加了大量功能并且可以在没有内置 UI 的情况下进行操作。
  • @mkc842,是的,我同意。我不明白为什么隐藏导航栏会自动扩展内容控制器的视图,但对标签栏控制器执行相同操作却不会。
猜你喜欢
  • 2016-06-29
  • 2023-03-27
  • 2011-11-07
  • 2019-10-02
  • 1970-01-01
  • 1970-01-01
  • 2015-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多