iOS 只在主页面显示TabBar

看到这篇文章的标题,也许你并不知道我想表达什么。
其实我也不知道我用什么标题来表述我想写的内容:
我在这里解释一下吧。
有的时候,产品会要求你只有在主页面的时候 显示TabBar,当你push进入到次级界面和以后的界面时,TabBar都要隐藏。只有back到第一个页面(首页)才会显示出TabBar。
这时候 你也许会设置
@property(nonatomic) BOOL hidesBottomBarWhenPushed 这个属性来达到你的目的。
其实完全没有这个必要,因为你要知道,你Push 和Back 都是通过NavigationController来做到的。所以我们可以重写一下navigationController中的属性来做到:

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;

因为push是压入到栈中,后来者居上:

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{
    //判断当前控制器中的自控制器个数
    if (self.viewControllers.count > 0) {
    //进入到次级界面count大于1,这时隐藏
        self.tabBarController.tabBar.hidden = YES;
    }
    [super pushViewController:viewController animated:animated];
}

再重写返回的方法:

- (nullable UIViewController *)popViewControllerAnimated:(BOOL)animated;
 - (nullable UIViewController *)popViewControllerAnimated:(BOOL)animated{
    if (self.viewControllers.count ==1 ) {
        self.tabBarController.tabBar.hidden = NO;
    }
    [super popViewControllerAnimated:animated];
}

ok 设置完成快去体验吧。!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值