Удалить цель по умолчанию для UINavigationControllers interactivePopGestureRecognizer - PullRequest
0 голосов
/ 01 октября 2019

У меня есть 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), но, конечно, я не знаю текущую (по умолчанию) цель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...