Я представляю UINavigationController
как модал от UIViewController
. Теперь, как только я реализую метод делегата контроллера навигации navigationController:animationControllerFor:from:to:
, жест pop (смахивание назад) перестанет работать без возможности вернуть его обратно.
Об этой проблеме обнаружено:
- Неважно, что возвращает метод делегата, даже всегда возвращающий ноль будет иметь один и тот же результат.
- Кажется, что распознаватель жестов настроен нормально - он существует, подключен к правильному представлению и включен
- Метод делегирования распознавателя жестов никогда не вызывается.
- Пользовательский
UIScreenEdgePanGestureRecognizer
, добавленный к контроллеру навигации view
, прекрасно работает - Модальный стиль представления не имеет значения (например, полноэкранный или не полноэкранный режим).
Распознаватель поп-жестов, похоже, полностью мертв.
Вещи, которые заставляют поп-жест работать снова:
- Отсутствие модального контроллера навигации
- Закомментирование
navigationController:animationControllerFor:from:to:
- Использование пользовательского распознавателя жестов + возврат пользовательского контроллера взаимодействия из
navigationController:interactionControllerFor:
, который имитирует интерактивный переход по умолчанию UINavigationController
. Похоже, что пока это единственное решение для этой работы.
Будем весьма благодарны за любые подсказки о том, что происходит и возможные решения.
Пример проекта
Этот проект демонстрирует проблему