zoukankan      html  css  js  c++  java
  • 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()
        }
    

      

  • 相关阅读:
    VLC通过RTSP地址向IPC取流播放不了问题排查
    linux opt分区扩容操作案例
    win10远程桌面报错"出现身份验证错误"
    linux通过expect实现脚本自动交互
    oracle通过触发器记录登陆主机ip
    linux root密码忘记重置
    linux双网卡配置
    Tomcat报错合集
    UFT(QTP)中的Object Repository
    利用JAVA反射机制设计通用的DAO
  • 原文地址:https://www.cnblogs.com/qingzZ/p/9983673.html
Copyright © 2011-2022 走看看