zoukankan      html  css  js  c++  java
  • 第十三篇、Swift_Nav自定义返回按钮后或者隐藏导航栏,Pop返回手势失效的解决方法 Pop全局返回添加的方法

    边缘的pop返回手势:

        override func viewDidLoad() {
            super.viewDidLoad()
            view.backgroundColor = UIColor.purple
            // 保留Pop手势
            navigationController?.interactivePopGestureRecognizer?.delegate = self
            navigationController?.interactivePopGestureRecognizer?.isEnabled = true
        }

    这些代码主要实在UINavigationController上添加

    Swift全屏pop返回手势:

    class CustomNavigationController: UINavigationController {
        override func viewDidLoad() {
            super.viewDidLoad()
            // 1.取出手势&view
            guard let gesture = interactivePopGestureRecognizer else { return }
            gesture.isEnabled = false
            let gestureView = gesture.view
            // 2.获取所有的target
            let target = (gesture.value(forKey: "_targets") as? [NSObject])?.first
            guard let transition = target?.value(forKey: "_target") else { return }
            let action = Selector(("handleNavigationTransition:"))
            // 3.创建新的手势
            let popGes = UIPanGestureRecognizer()
            popGes.maximumNumberOfTouches = 1
            gestureView?.addGestureRecognizer(popGes)
            popGes.addTarget(transition, action: action)
        }
        override func pushViewController(_ viewController: UIViewController, animated: Bool) {
            viewController.hidesBottomBarWhenPushed = true
            super.pushViewController(viewController, animated: animated)
        }
    }

    OC POP手势返回:

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        id target = self.interactivePopGestureRecognizer.delegate;
        UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc]initWithTarget:target action:@selector(handleNavigationTransition:)];
        pan.delegate = self;
        [self.view addGestureRecognizer:pan];
        [self.interactivePopGestureRecognizer setEnabled:NO];
    }
    
    - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
        return self.childViewControllers.count == 1 ? NO : YES;
    }
  • 相关阅读:
    团队第三次作业 ——需求分析
    个人作业——IM SDK 评测
    AFLW如何获取你想要的21点人脸关键点数据
    本地ubuntu下pycharm 如何利用远程开发环境时显示图片
    pandas如何去掉时间列的小时只保留日期
    如何通过numpy获得二维或多维数组的最大、小值索引
    怎么理解np.random.seed()?
    python+opencv2相机位姿估计
    Image Style Transfer:多风格 TensorFlow 实现
    python matplotlib 播放图片变化过程
  • 原文地址:https://www.cnblogs.com/HJQ2016/p/5966559.html
Copyright © 2011-2022 走看看