iOS TabbarViewController隐藏标签栏

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

self.tabBar.hidden = YES; 

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

编辑:蓝色区域是:

 self.view.backgroundColor = [UIColor blueColor]; 

我们在应用程序中完全一样。 要隐藏默认的TabBar,只需重写父视图控制器中的hidesBottomBarWhenPushed方法(或者在App中的每个视图控制器中)

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

编辑:这个值也可以从Storyboard中设置:

在这里输入图像说明

我不认为有一个简单的方法来解决这个问题,因为UITabbarViewController可能是你的超级视图和所有“内部”视图“height = screenHeight - tabBarHeight - navBarHeight

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

这就是你如何在Swift中重写( UIViewController ):

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

我的UITabBarController位于一个容器视图中。 检查“隐藏底部酒吧推”不适合我。 相反,我创build了标签栏控制器的子类,并以编程方式隐藏标签栏。

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