全屏右滑返回

2018-08-18  本文已影响4人  小凡凡520
import UIKit

class CustomNavigationViewController: UINavigationController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let target = self.interactivePopGestureRecognizer?.delegate
        
        let handler = NSSelectorFromString("handleNavigationTransition:")
        //  获取添加系统边缘触发手势的View
        let targetView = self.interactivePopGestureRecognizer?.view
        
        //  创建pan手势 作用范围是全屏
        let fullScreenGes = UIPanGestureRecognizer(target: target, action: handler)
        fullScreenGes.delegate = self
        targetView?.addGestureRecognizer(fullScreenGes)
        
        // 关闭边缘触发手势 防止和原有边缘手势冲突
        self.interactivePopGestureRecognizer?.isEnabled = false
    }
}

extension CustomNavigationViewController:UIGestureRecognizerDelegate {
    func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
        return self.childViewControllers.count == 1 ? false : true
    }
}

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
    }
}
上一篇 下一篇

猜你喜欢

热点阅读