的iOS TabbarViewController隐藏标签栏

问题描述:

我有一个视图控制器,它实现UITabbarViewController,我想隐藏 标签栏,并通过自己覆盖它,的iOS TabbarViewController隐藏标签栏

self.tabBar.hidden = YES; 

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

编辑:蓝色区域是:

self.view.backgroundColor = [UIColor blueColor]; 
+0

请检查http://*.com/questions/1982172/iphone-is-it-possible-to-hide-the-tabbar/29619468#29619468如果你能 – 2015-04-14 05:01:33

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

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

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

enter image description here

+1

将其设置成故事板。我在视图控制器中完成了它,但是当按下后退按钮时,标签栏仍然隐藏。试图做相反的代码,并把它带回来,但没有运气。 – levibostian 2015-08-01 00:11:22

+0

我试过了,没有用。代码版本和故事板版本都没有。我为我的应用程序中的每个视图控制器设置了它(因为它不是100%清楚我应该将其添加到哪个视图控制器)。零效应。我的标签栏控制器被嵌入到一个容器中,该容器位于视图控制器中,该视图控制器本身嵌入另一视图控制器中的容器中。这种嵌套可能是问题的根源。我的应用中只有一个TabBar控制器。 – 2015-08-29 16:55:34

+2

@BillPatterson这只适用于嵌入在'UINavigationController'中的视图控制器。你将有'UITabViewController' - >'UINavigationController' - >'MyViewController'。并且您在MyViewController中将'hidesBottomBarWhenPushed'设置为YES YES – redent84 2015-08-30 14:15:02

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

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

这是你会怎么做雨燕倍率(UIViewController):

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

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

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