隐藏 TabBar 控制器

Posted

技术标签:

【中文标题】隐藏 TabBar 控制器【英文标题】:Hiding TabBar controller 【发布时间】:2011-02-02 00:39:55 【问题描述】:

我有这个与 MonoTouch 相关的问题,但我认为 Objective/C 程序员也可以提供帮助。

我有带有一些标签的 TabBarController。我希望我的主视图控制器(添加到 tabBar)在没有 tabBar 的情况下出现。 我认为这样做的方法是将那个控制器的 HidesBottomBarWhenPushed 设置为 true。

homePage = new HomePageController();
homePage.HidesBottomBarWhenPushed = true;

homePage.TabBarItem = new UITabBarItem("Home", new UIImage("Images/Icons/home.png"), 0);

但是,这似乎只适用于将 TabBar 与 NavigationController 一起使用的情况,即在我们实际推送控制器的情况下。 我想知道是否有一种方法可以仅针对 tabBarController 中包含的简单视图控制器。

【问题讨论】:

【参考方案1】:

您可以尝试将标签栏的hidden 属性设置为YES。 (或 MonoTouch 中的 true

【讨论】:

你好,摩西。非常感谢您的回答。 然而,这并不是我想要得到的。当我将 hidden 属性设置为 true 时,我在 TabBar 的位置得到白色矩形。我希望能够将 ViewController 放在那个 TabBar 上。我试图将 ViewController 放在前面,因为如果我错了,请纠正我,TabBar 的索引为 1,而 ViewController 显示为 0。遗憾的是,这不起作用。任何进一步的帮助将不胜感激。 您还需要调整视图框架的大小。我稍后会尝试发布代码。【参考方案2】:

我发现,其实tabBarController的tabBar区域是不能覆盖的。您可以像 Moshe 所说的那样设置隐藏属性,或者您也可以使用不透明度但不能用任何东西覆盖它。 但是有一个很好的替代解决方案。您可以使用模态视图,它始终具有比常规控制器更高的索引。因此,它将涵盖所有内容。

homePageContent.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
        homePageContent.ModalTransitionStyle = UIModalTransitionStyle.CoverVertical;

        this.PresentModalViewController(homePageContent, false);

        base.ViewWillAppear (animated);

【讨论】:

以上是关于隐藏 TabBar 控制器的主要内容,如果未能解决你的问题,请参考以下文章

swift - 指定VC隐藏导航栏 - 禁用tabbar的根控制器手势,防止两个tabbar跳转 手势冲突

Tabbar隐藏问题的解决方案

如何在不隐藏 tabBar 的情况下呈现视图控制器

隐藏 TabBar 并在按钮单击时显示 NavigationController 工具栏

隐藏 TabBar 后无法触摸 TabBar 后面的区域

Iphone:是不是可以隐藏 TabBar? (iOS 8 之前的版本)