隐藏UITabBar?

在我的应用程序中,我有一个标签栏。 在一些看法,我也有一个工具栏。 所以当我用工具栏来看这些视图的时候,看起来很丑陋 – 视图底部的两个横条。 我认为这将是一个最好的解决scheme,当input这些特定的视图隐藏标签栏。 但我无法弄清楚如何以正确的方式做到这一点。 我试图设置UITabBarController的tabBar隐藏属性为YES,但它没有工作。 而且我也试图用我的观点来做下面的事情:

self.hidesBottomBarWhenPushed = YES; 

但是这并没有奏效。

什么是这种情况的正确解决scheme? 我不想有任何观点2酒吧。

谢谢。

你必须在控制器上使用设置hidesBottomBarWhenPushed属性为YES,而不是UITabBarController。

 otherController.hidesBottomBarWhenPushed = YES; [navigationController pushViewController: otherController animated: TRUE]; 

或者,您可以在首次初始化要推送的控制器时设置属性。

界面生成器的视图控制器embedded在标签栏的checkbox – 隐藏底部的推杆。 在简单的情况下,现在不需要通过代码来完成。

对于@Micah

隐藏底部的推杆。

不要使用这个解决scheme!

 BOOL hiddenTabBar; UITabBarController *tabBarController; - (void) hideTabBar { [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.4]; for(UIView *view in tabBarController.view.subviews) { CGRect _rect = view.frame; if([view isKindOfClass:[UITabBar class]]) { if (hiddenTabBar) { _rect.origin.y = [[UIScreen mainScreen] bounds].size.height-49; [view setFrame:_rect]; } else { _rect.origin.y = [[UIScreen mainScreen] bounds].size.height; [view setFrame:_rect]; } } else { if (hiddenTabBar) { _rect.size.height = [[UIScreen mainScreen] bounds].size.height-49; [view setFrame:_rect]; } else { _rect.size.height = [[UIScreen mainScreen] bounds].size.height; [view setFrame:_rect]; } } } [UIView commitAnimations]; hiddenTabBar = !hiddenTabBar; } 

资源

我也为此苦苦了一阵子。 隐藏标签栏是正确的一步,但留下一个黑色的矩形。 诀窍是调整支持UIViewController视图的图层大小。

我已经写了一个小的演示,这里有一个解决scheme:

https://github.com/tciuro/FullScreenWithTabBar

我希望这有帮助!