iOS TabbarViewController隐藏选项卡栏
我有一个viewcontroller,它实现了UITabbarViewController,我想隐藏它 选项卡栏,并自己覆盖它iOS TabbarViewController隐藏选项卡栏,ios,uitabbarcontroller,tabbar,Ios,Uitabbarcontroller,Tabbar,我有一个viewcontroller,它实现了UITabbarViewController,我想隐藏它 选项卡栏,并自己覆盖它 self.tabBar.hidden = YES; 选项卡栏消失了,但视图底部有一个空白区域(蓝色区域)。 我不想要空白区域,我怎么解决这个问题?多谢各位 编辑:蓝色区域为: self.view.backgroundColor = [UIColor blueColor]; 我不认为有一个简单的方法来解决这个问题,因为UITabbarViewController可能是
self.tabBar.hidden = YES;
选项卡栏消失了,但视图底部有一个空白区域(蓝色区域)。
我不想要空白区域,我怎么解决这个问题?多谢各位
编辑:蓝色区域为:
self.view.backgroundColor = [UIColor blueColor];
我不认为有一个简单的方法来解决这个问题,因为
UITabbarViewController
可能是您的超级视图和所有“内部”视图的高度=screenHeight-tabBarHeight-navBarHeight
也许您可以尝试手动调整内部视图控制器的大小,但我认为您可能会在Apple的AppStore提交过程中遇到问题,因为我认为这违反了一般的iOS用户体验。我们在应用程序中也做了同样的事。要隐藏默认的选项卡栏,只需在父视图控制器(或应用程序中的每个视图控制器)中覆盖
hidesbottombarwhenpush
方法
编辑:此值也可以从情节提要中设置:
以下是您在Swift中执行覆盖(
UIViewController
)的方法:
override var hidesBottomBarWhenPushed: Bool {
get { return true }
set { super.hidesBottomBarWhenPushed = newValue }
}
My
UITabBarController
位于容器视图中。检查“按下时隐藏底部栏”对我不起作用。相反,我创建了选项卡栏控制器的子类,并以编程方式隐藏了选项卡栏
class FooTabBar: UITabBarController {
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
self.tabBar.isHidden = true
}
}
如果可以的话,请选择在故事板中设置它。我在viewcontroller中执行了此操作,但当按下后退按钮时,选项卡栏仍然隐藏。我试着做了反向编码,但没有成功。我试过了,没有成功。无论是代码版本还是情节提要版本。我为我的应用程序中的每个视图控制器都设置了它(因为它不是100%清楚我应该将它添加到哪个视图控制器)。零效应。我的选项卡栏控制器嵌入在一个容器中,该容器位于一个视图控制器中,该视图控制器本身嵌入在另一个视图控制器的容器中。这种嵌套可能是问题的根源。“我的应用程序中只有一个选项卡栏控制器。@BillPatterson这只适用于嵌入
UINavigationController
中的视图控制器。您将拥有UITabViewController
->UINavigationController
->“MyViewController”。您可以在MyViewController中将按下时的hidesbottomBar设置为YES
class FooTabBar: UITabBarController {
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
self.tabBar.isHidden = true
}
}