自定义UITabBarController的一个奇葩bug,UITabBarButton隐藏后,还会自动出现

201 阅读1分钟

开发中很常见要自定义UITabBarController

我的工程是隐藏他上面的UITabBarButton,然后自定义一些按钮上去。

然后初始化的时候,用下面的代码隐藏默认的UITabBarButton

for item in self.tabBar.subviews {
    if item.isKind(of: UITabBarButton.classForCoder()) {
        item.isHidden = true
    }
}

添加到UITabBarController的自定义的button,做好选中和不选中的默认样式。

然后添加好5个VC到UITabBarController里面。

问题来了。5个VC,4个UITabBarButton都能够很好的隐藏,就是第二个VC每次编译好,他没有问题,点击他的时候,竟然UITabBarButton又会显示出来,不是前面都隐藏了吗,其他4个VC都能隐藏的好好的,就他点击的时候就会出现。

正常的图如下:

image.png

异常的图如下:

image.png

查了很久,都没有解决,有一个打补丁的方法可以临时解决。

当点击第二个tab后,再调用一下上面的隐藏UITabBarButton的函数,可以让他隐藏。但是眼快的话还是会看到闪一下。

不完美,继续想办法,最后解决方法也很简单,竟然是第二个VC页面里面有定义title=”全部分类“

去掉或者让title置空,完美解决,哎我去。