У меня есть пользовательский переход UIViewController, который в основном складывает приходящий ViewController справа от текущего на экране и перемещает их влево (нажатие) или вправо (всплывающее).
У меня естьреализовал переход, чтобы быть интерактивным:
@objc private func addPanGestureRecognizer(_ gestureRecognizer: UIScreenEdgePanGestureRecognizer) {
guard let view = gestureRecognizer.view else { return }
let progress = gestureRecognizer.translation(in: view).x / view.frame.size.width
switch gestureRecognizer.state {
case .began:
interactionController = UIPercentDrivenInteractiveTransition()
navigationController.popViewController(animated: true)
case .changed:
interactionController.update(progress)
default:
if progress >= 0.5 {
interactionController.finish()
} else {
interactionController.cancel()
}
interactionController = nil
}
}
Вышеупомянутое действие жеста инициирует мой пользовательский переход, когда я применяю жест смахивания от левого края экрана, хотя это не происходит интерактивно, а просто запускает мою пользовательскую анимациюполностью.
Что заставляет его не действовать в интерактивном режиме?
ps Вышеуказанные действия жестов добавляются как действие UIScreenEdgePanGestureRecognizer
к представлению контроллера с принудительным просмотром.