隐藏UITabBar?

Ily*_*ski 40 iphone cocoa-touch

在我的应用程序中,我有一个标签栏.在某些视图中我也有一个工具栏.因此,当我使用工具栏来查看这些视图时,它看起来很难看 - 视图底部有两个条形图.我认为在输入特定视图时隐藏标签栏是最佳解决方案.但我无法弄清楚如何以正确的方式做到这一点.我试图将UITabBarController的tabBar隐藏属性设置为YES,但它不起作用.我也试图以任何方式做以下事情:

self.hidesBottomBarWhenPushed = YES;
Run Code Online (Sandbox Code Playgroud)

但它没有奏效.

这种情况的正确解决方案是什么?我不希望在任何视图中都有2个小节.

谢谢.

Pan*_*ros 67

您必须在您正在推送的控制器上将hidesBottomBarWhenPushed属性设置为YES,而不是UITabBarController.

otherController.hidesBottomBarWhenPushed = YES;
[navigationController pushViewController: otherController animated: TRUE];
Run Code Online (Sandbox Code Playgroud)

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


Vla*_*yuk 13

界面构建器具有嵌入在选项卡栏中的视图控制器的复选框 - 在推送时隐藏底部栏.在简单的情况下,现在无需通过代码执行此操作.

对于@Micah

在推动时隐藏底栏.


SAK*_*isT 10

不要使用这个解决方案!

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;
}
Run Code Online (Sandbox Code Playgroud)

资源


tit*_*nus 9

我有一段时间也在努力解决这个问题.隐藏标签栏是向右方向迈出的一步,但在后面留下一个黑色矩形.诀窍是调整支持UIViewController视图的层的大小.

我在这里写了一个小型演示解决方案:

https://github.com/tciuro/FullScreenWithTabBar

我希望这有帮助!