iOS TabbarViewController隐藏标签栏

时间:2013-03-08 14:19:27

标签: ios uitabbarcontroller tabbar

我有一个viewcontroller,它实现了UITabbarViewController,我想要隐藏 标签栏并由我自己覆盖,

self.tabBar.hidden = YES;

标签栏消失但是视图底部有一个空白区域(蓝色区域)。 我不想要空白区域,我该如何解决这个问题?谢谢。

编辑:蓝色区域为:

self.view.backgroundColor = [UIColor blueColor];

4 个答案:

答案 0 :(得分:65)

我们的应用程序完全相同。要隐藏默认TabBar,只需覆盖父视图控制器(或应用程序中的每个视图控制器)中的hidesBottomBarWhenPushed方法

#pragma mark - Overriden UIViewController methods
- (BOOL)hidesBottomBarWhenPushed {
    return YES;
}

编辑:此值也可以从故事板:

设置

enter image description here

答案 1 :(得分:1)

我认为没有一种简单的方法可以解决这个问题,因为UITabbarViewController可能是您的超级视图,所有“内部”视图的高度= screenHeight - tabBarHeight - navBarHeight

也许您可以尝试手动调整内部视图控制器的大小,但我认为您可能在Apple的AppStore提交过程中遇到问题,因为我认为这违反了一般的iOS用户体验。

答案 2 :(得分:1)

这就是你在Swift中执行覆盖(UIViewController)的方法:

override var hidesBottomBarWhenPushed: Bool {
    get { return true }
    set { super.hidesBottomBarWhenPushed = newValue }
}

答案 3 :(得分:1)

我的UITabBarController位于容器视图中。检查"在推送时隐藏底栏"不适合我。相反,我创建了一个标签栏控制器的子类,并以编程方式隐藏了标签栏。

class FooTabBar: UITabBarController {
  override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    self.tabBar.isHidden = true
  }
}