• swift


    1. viewdidload 设置代理

    self.navigationController?.delegate = self
    

      

    2.代理里面指定VC 隐藏

    //MARK: - 导航栏delegate
    extension JYHomeViewController:UINavigationControllerDelegate {
    
        /// 此方法会在controller的viewWillApper方法调用后开始调用(使用时注意controller的生命周期)
        func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
            if viewController is JYHomeViewController || viewController is JYPhotoBrowserController || viewController is JYRTSRootViewController {
                JY_WINDOW?.removeBubbleView()
                self.navigationController?.setNavigationBarHidden(true, animated: true)
            }else{
                self.navigationController?.setNavigationBarHidden(false, animated: true)
            }
        }
    }
    

      
    3. 在根控制器首页 禁用手势, 不管有几个 homeVc, 有俩tabbar 就在俩homeVc都写上

    extension JYHomeViewController: UIGestureRecognizerDelegate {
        /// 禁止使用手势返回
        func forbidhenSideBack() {
            self.isCanSideBack = false
            if (self.navigationController?.responds(to:#selector(getter: self.navigationController?.interactivePopGestureRecognizer))) == true {
                self.navigationController?.interactivePopGestureRecognizer?.delegate = self
            }
        }
        /// 恢复手势返回
        func resetSideBack() {
            self.isCanSideBack = true
            if (self.navigationController?.responds(to:#selector(getter: self.navigationController?.interactivePopGestureRecognizer))) == true {
                self.navigationController?.interactivePopGestureRecognizer?.delegate = nil
            }
        }
        func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
            return self.isCanSideBack
        }
    }
    

      在 willappear 和willDisaapper 使用

        override func viewWillAppear(_ animated: Bool) {
            super.viewWillAppear(animated)
            self.forbidhenSideBack()
        }
        override func viewWillDisappear(_ animated: Bool) {
            super.viewWillDisappear(animated)
            self.resetSideBack()
        }
    

      

  • 相关阅读:
    Xshell添加快捷按钮
    Go语言基础之21--反射
    Jenkins自动化CI CD流水线之7--流水线自动化发布PHP项目
    Jenkins自动化CI CD流水线之6--构建邮件状态通知
    Jenkins自动化CI CD流水线之5--pipeline
    Python练习-函数(方法)的定义和应用
    Python文件操作-文件的增删改查
    Python练习-不知道弄个什么鬼
    Python练习-短小精干版三级"片儿"
    Python练习-三级菜单与"片儿"无关!
  • 原文地址:https://www.cnblogs.com/qingzZ/p/9983673.html
Copyright © 2020-2023  润新知