美文网首页
全屏右滑返回

全屏右滑返回

作者: 小凡凡520 | 来源:发表于2018-08-18 15:24 被阅读4次
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.
        
    }
}

相关文章

网友评论

      本文标题:全屏右滑返回

      本文链接:https://www.haomeiwen.com/subject/apefiftx.html