我有一个viewcontroller,它实现了UITabbarViewController,我想要隐藏 标签栏并由我自己覆盖,
self.tabBar.hidden = YES;
标签栏消失但是视图底部有一个空白区域(蓝色区域)。 我不想要空白区域,我该如何解决这个问题?谢谢。
编辑:蓝色区域为:
self.view.backgroundColor = [UIColor blueColor];
答案 0 :(得分:65)
我们的应用程序完全相同。要隐藏默认TabBar,只需覆盖父视图控制器(或应用程序中的每个视图控制器)中的hidesBottomBarWhenPushed
方法
#pragma mark - Overriden UIViewController methods
- (BOOL)hidesBottomBarWhenPushed {
return YES;
}
编辑:此值也可以从故事板:
设置
答案 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
}
}