iOS 隐藏&显示tabBar

一般的界面显示需求:在主页面是显示tabBar的,在所有的子页面隐藏tanBar,做法很简单

当push到一个新的页面时隐藏tabBar
viewController.hidesBottomBarWhenPushed = YES;

但是,需求是这样的:

主页是显示tabBar的,进入第二个页面,隐藏tabBar,再进入第三个页面,显示tabBar。
废话不多说了,看代码

// 强制显示tabbar
NSArray *views = self.tabBarController.view.subviews;
UIView *contentView = [views objectAtIndex:0];
contentView.height -= 49;
self.tabBarController.tabBar.hidden = NO;

仅仅这样写的话,会出现问题的,(如果不做处理的话,从第三个页面进入到第四个页面,将不会隐藏tabBar)

比较完善的做法是这样的

虽然会在使用右滑手势返回pop时,界面有些不太雅观,但还是可以接受的😄

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

     // 强制显示tabbar
     NSArray *views = self.tabBarController.view.subviews;
     UIView *contentView = [views objectAtIndex:0];
     contentView.height -= 49;
     self.tabBarController.tabBar.hidden = NO;
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    
    // 强制隐藏tabbar
    NSArray *views = self.tabBarController.view.subviews;
    UIView *contentView = [views objectAtIndex:0];
    contentView.height += 49;
    self.tabBarController.tabBar.hidden = YES;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,315评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,241评论 4 61
  • UICollectionViewFlowLayout *layout = ({ UICollectionViewF...
    Hello_World2017阅读 220评论 0 0
  • 一周里最放松的一天 上图:热身前已经准备好的装备 上图:我跟宝马帅哥一组,输的一败涂地,眼睛都在看帅哥没看到球 上...
    睿骋阅读 332评论 0 0
  • 周六带小侄女去玩,晚上8点多,在回来的公交上发生了一件事: 有3个人,从我上车后,他们一直站在后面位置聊天,声音很...
    楼上小花阅读 625评论 4 8