我有一个实现UITabbarViewController的视图控制器,我想隐藏标签栏并自己覆盖它,
self.tabBar.hidden = YES;
标签栏消失了,但视图底部有一个空白区域(蓝色区域)。我不想要空白区域,我该如何解决?谢谢你。
编辑:蓝色区域是:
self.view.backgroundColor = [UIColor blueColor];
我有一个实现UITabbarViewController的视图控制器,我想隐藏标签栏并自己覆盖它,
self.tabBar.hidden = YES;
标签栏消失了,但视图底部有一个空白区域(蓝色区域)。我不想要空白区域,我该如何解决?谢谢你。
编辑:蓝色区域是:
self.view.backgroundColor = [UIColor blueColor];
我们在我们的应用程序中做了完全相同的事情。要隐藏默认的 TabBar,只需覆盖hidesBottomBarWhenPushed
父视图控制器(或应用程序中的每个视图控制器)中的方法
#pragma mark - Overriden UIViewController methods
- (BOOL)hidesBottomBarWhenPushed {
return YES;
}
编辑:这个值也可以从情节提要中设置:
MyUITabBarController
位于容器视图中。检查“在推送时隐藏底部栏”对我不起作用。相反,我创建了标签栏控制器的子类并以编程方式隐藏了标签栏。
class FooTabBar: UITabBarController {
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
self.tabBar.isHidden = true
}
}
我认为没有一种简单的方法可以解决此问题,因为UITabbarViewController
可能是您的超级视图和所有“内部”视图的 height = screenHeight - tabBarHeight - navBarHeight
。
也许您可以尝试手动调整内部视图控制器的大小,但我认为您可能在 Apple 的 AppStore 提交过程中遇到问题,因为我认为这违反了一般的 iOS 用户体验。
这就是您UIViewController
在 Swift 中执行覆盖 () 的方式:
override var hidesBottomBarWhenPushed: Bool {
get { return true }
set { super.hidesBottomBarWhenPushed = newValue }
}