您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页iOS tabBar,NavigationBar无法隐藏问题解决

iOS tabBar,NavigationBar无法隐藏问题解决

来源:二三娱乐

在NavigationController中重写下面方法,来实现隐藏tabBar很常见,但是今天sb了,把 super.pushViewController(viewController, animated: animated)写方法开始了,导致怎么也隐藏不了,我都快跳楼了,浪费了半小时的时间,特此记录下来,以防坑到别的道友。。。

override func pushViewController(_ viewController: UIViewController, animated: Bool) {
        
        
        if viewControllers.count > 0 {
         
            viewController.hidesBottomBarWhenPushed = true

        }
        
        super.pushViewController(viewController, animated: animated)
    }

super.pushViewController(viewController, animated: animated),这句一定要写最后,如果这句写在方法的开始,他的子界面里再设置viewController.hidesBottomBarWhenPushed = true,会完全不起作用,所以super,一定要写到这个方法最后!!!

另外记录下NavigationBar隐藏的错误姿势

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        
        navigationController?.setNavigationBarHidden(true, animated: false)
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillAppear(animated)
        
        navigationController?.setNavigationBarHidden(false, animated: true)
    }

如果隐藏掉NavigationBar,右划返回就不起作用,需要设置

        navigationController?.interactivePopGestureRecognizer?.delegate = self as? UIGestureRecognizerDelegate;

这样右划返回手势就起作用了,但是如果设置上面的隐藏NavigationBar的方式会发现当右划返回手势滑到一半没有返回,NavigationBar会出来,尴尬😓

所以正确的方式是

 override func viewDidAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        
        navigationController?.setNavigationBarHidden(true, animated: false)
    }

最近发现navBar很坑,因为手势问题会偶发界面卡死的问题,还有莫名其妙的隐藏显示失败,所以全部自定义掉最靠谱

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务