解决UINavigationController+UITabbar跳转页面隐藏tabbar的一种方法

本文介绍了在页面跳转时如何优雅地隐藏UITabbar,避免出现黑边或显示异常的问题。在从B控制器push到C、D控制器时,需要C、D不显示tabbar,而B显示。通过在C和D中设置特定代码,成功解决了这一问题。
摘要由CSDN通过智能技术生成

今天做项目的时候遇到要处理在页面跳转的时候隐藏tabbar,找了很多方法都没有实现,要么是用self.tabBarController.tabBar.hidden = YES出现黑边,要么就是使用self.hidesBottomBarWhenPushed = YES出现B也不显示tabbar的BUG,最后在app4code上看到了一个方法可以解决我的这个问题。

我的问题是rootViewController:A,subview:B,B可以push到C,D两个viewcontroller。B显示tabbar,C、D不显示tabbar。

代码简单,大家直接自己看就OK了。

在C和D中写如下方法:

-(void) viewDidAppear:(BOOL)animated
{
    self.hidesBottomBarWhenPushed = YES;
}

-(void)viewWillAppear:(BOOL)animated
{
    [self hideTabBar];
}

- (void)hideTabBar {
    if (self.tabBarController.tabBar.hidden == YES) {
        return;
    }
    UIView *contentView;
    if ( [[self.tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] )
        contentView = [self.tabBarController.view.subviews objectAtIndex:1];
    else
        contentView = [self.tabBarControl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值