在 iOS 6 中隐藏标签栏

Posted

技术标签:

【中文标题】在 iOS 6 中隐藏标签栏【英文标题】:Hide TabBar in iOS 6 【发布时间】:2013-12-04 06:30:57 【问题描述】:

我想在ios 6 中隐藏我的TabBar,当我编写下面给出的代码时,它在iOS 7 中工作,但在iOS 6 中显示黑线

self.tabBarController.tabBar.hidden = YES;

这是iOS 6的快照

:

【问题讨论】:

你能在 iOS 6 中仔细检查 self.tabBarController 不是 null 吗? 同样的问题和解决方案在这里:***.com/questions/19006545/… @ShivanRaptor:当我登录self.tabBarController 时,它显示<UITabBarController: 0xc087150> ***.com/questions/19006545/… 【参考方案1】:

试试下面的代码可能对你有帮助...

- (void)hideTabBar:(UITabBarController *) tabbarcontroller
        
    for(UIView *view in tabbarcontroller.view.subviews)
    
        if([view isKindOfClass:[UITabBar class]])
        
            if([UIScreen mainScreen].bounds.size.height==568)
            
                 [view setFrame:CGRectMake(view.frame.origin.x, 568 +20, view.frame.size.width, view.frame.size.height)];
            
            else
            
                 [view setFrame:CGRectMake(view.frame.origin.x, 480+20, view.frame.size.width, view.frame.size.height)];
            

        
        else
        
            if([UIScreen mainScreen].bounds.size.height==568)
            
                [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 568)];
            
            else
            
                [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)];
            
        
    


- (void)showTabBar:(UITabBarController *) tabbarcontroller

    for(UIView *view in tabbarcontroller.view.subviews)
    
        if([view isKindOfClass:[UITabBar class]])
        
            if([UIScreen mainScreen].bounds.size.height==568)
            
                [view setFrame:CGRectMake(view.frame.origin.x, 519, view.frame.size.width, view.frame.size.height)];
            
            else
            
                [view setFrame:CGRectMake(view.frame.origin.x, 431, view.frame.size.width, view.frame.size.height)];
            
        
        else
        
            if([UIScreen mainScreen].bounds.size.height==568)
            
                [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 519)];
            
            else
            
                [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 431)];
            
        
    

【讨论】:

这是什么?(isiPhone5?568:480)+20 我已经在 appdel 中为此实现了 BOOL if ([UIScreen mainScreen].bounds.size.height == 568.0) isiPhone5=YES; @Krunal 抱歉,现在检查答案 老兄但是如何调用这个方法? @Krunal 你在 AppDelegate 视图中创建了你的 UITabBar 吗?【参考方案2】:

当你推送视图控制器时,只需使用

yourViewController.hidesBottomBarWhenPushed = YES;
[yourTabbarNavigationController pushViewController:helpViewController animated:YES];

这将删除黑色半透明层,但如果您使用自定义标签栏,那么您也必须显式隐藏这些视图。

【讨论】:

以上是关于在 iOS 6 中隐藏标签栏的主要内容,如果未能解决你的问题,请参考以下文章

如何在xamarin表单ios中隐藏标签栏导航标题

在 iOS 5 和 6 上仅支持在一个选项卡中旋转

如何在 iOS 13 中隐藏带有动画的标签栏?

自定义标签栏应用 ipad 隐藏标签栏

如何在 React Native 的导航界面中隐藏标签栏?

隐藏标签栏上的覆盖按钮