У меня есть UINavigationController
, скажем, иногда с двумя, иногда с тремя ViewControllers
, зависящими от рабочего процесса. Цель состоит в том, чтобы всегда возвращаться к первому ViewController
, когда проводите назад от последнего. Я получаю это поведение ранее с грязным решением, манипулируя массивом navigationController.viewControllers
. Я удалил вторую ViewController
в массиве после толкания к третьей (когда в рабочем процессе с тремя). Но иногда это быстрое исправление не работает должным образом.
Теперь я использую функцию navigationController.popToViewController(firstVC, animated: true)
внутри своей кнопки IBAction
, и это прекрасно работает.
Теперь проблема в том, что мне нужно переопределить функциючто называется interactivePopGestureRecognizer
. Я знаю, что могу отключить interactivePopGestureRecognizer
с помощью self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false
и переопределить новый UIScreenEdgePanGestureRecognizer
.
Но я надеюсь, что смогу сделать это чище, убрав селектор по умолчанию из interactivePopGestureRecognizer
или переопределить его?
У меня есть доступ к self.navigationController?.interactivePopGestureRecognizer?.removeTarget(target: Any?, action: Selector?)
и self.navigationController?.interactivePopGestureRecognizer?.addTarget(target: Any, action: Selector)
, но, конечно, я не знаю текущую (по умолчанию) цель.