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.
}
}
网友评论