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()
        }
    

      

  • 相关阅读:
    Ubuntn16.04+OpenCV3.1+CUDA8.0+cudnn5.1+caffe配置及问题集锦
    理解最短路径-Dijkstra算法
    使用git命令从github上clone项目
    Vscode中问题
    windows和ubuntn互传文件
    Python中的一些模块用法
    机器学习中矩阵的求导知识
    训练集,验证集,测试集
    Javascript、Jquery获取浏览器和屏幕各种高度宽度
    DTCMS规格统一赋值
  • 原文地址:https://www.cnblogs.com/qingzZ/p/9983673.html
Copyright © 2011-2022 走看看