博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UITabbarController + UINavigationController隐藏tabbar
阅读量:6235 次
发布时间:2019-06-22

本文共 950 字,大约阅读时间需要 3 分钟。

UITabbarController + UINavigationController 的组合很经常使用。通常是UITabbarController作为window的根视图控制器,然后其他VC使用UINavigationController

因此,在其他VC进行push操作的时候,常常需要将tabbar隐藏起来,在pop回去的时候重现显示。这个需求大多通过UIViewControllerhidesBottomBarWhenPushed的属性来设置。设置为false的时候,跳转到下一个vc时就会将tabbar隐藏起来,但是在UINavigationController的层次结构中,你将会发现,pop回来的时候,tabbar也没有出现。

在SO上找到下面这个答案

UINavigationController中,如果设置了其中一个VC的话,UINavigationController也会将层次结构中其他VC也一并设置上,所以哪怕将hidesBottomBarWhenPushed设置为false也没有效果

不过该答案下面提供的解决代码貌似使用不了,我自己改了一下他的代码:

经指正,hidesBottomBarWhenPushed是放在要push的vc上,而不是放在当前的vc。没注意这个属性中的When.

  • swift
/*override var hidesBottomBarWhenPushed: Bool {        get {            return navigationController?.topViewController != self        }        set {            super.hidesBottomBarWhenPushed = newValue        }    }*/复制代码
  • oc
/*- (BOOL) hidesBottomBarWhenPushed {    return (self.navigationController.topViewController != self);}*/复制代码

转载于:https://juejin.im/post/5a30e0586fb9a045104a7be2

你可能感兴趣的文章
perl命令行批量修改文件内容
查看>>
zk服务器的构成,一个请求是如何处理的
查看>>
Webpack使用nodemon实时打包编译
查看>>
趣图:测试的时候一切ok,真正上线的时候……
查看>>
1:三维场景浏览
查看>>
文件的“打开”和“关闭”操作
查看>>
PlayScala 2.5.x - 关于Content-Type的注意事项
查看>>
linux配置了java环境变量仍然报java: command not found
查看>>
Windows8.1
查看>>
maven编译的时候跳过test
查看>>
java回调函数的理解
查看>>
centos7的使用
查看>>
【持续更新】IDEA常用快捷键
查看>>
CentOS 编译安装新版git
查看>>
12.6 Nginx安装 12.7 默认虚拟主机 12.8 Nginx用户认证12.9 Nginx域名重定向
查看>>
tomcat 启动和关闭源码查看
查看>>
JavaScript设计模式之观察者模式
查看>>
osx中让idea使用官方版的git
查看>>
js 数组 map方法
查看>>
Linux 工程师技术
查看>>