Я бы реализовал UIScreenEdgePanGestureRecognizer
, чтобы справиться с этим. Добавьте следующее к вашему viewDidLoad
let swipeGesture = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(backNavigationFunction(_:)))
swipeGesture.edges = .left
swipeGesture.delegate = self
view.addGestureRecognizer(swipeGesture)
Затем реализуйте функцию для обработки backNavigationFunction
, как показано ниже:
@objc func backNavigationFunction(_ sender: UIScreenEdgePanGestureRecognizer) {
let dX = sender.translation(in: view).x
if sender.state == .ended {
let fraction = abs(dX / view.bounds.width)
if fraction >= 0.35 {
//back navigation code here
}
}
}
Не забудьте сделать ViewController наследуемым от UIGestureRecognizerDelegate
класса (т.е. class WebViewController: UIViewController, WKUIDelegate, WKNavigationDelegate, UIGestureRecognizerDelegate
). Рассматриваемый здесь делегат UIGestureRecognizerDelegate
, но я ожидаю, что вам понадобятся и другие.