Пользовательский переход на UINavigationController назад проведите - PullRequest
1 голос
/ 14 февраля 2020

У меня есть UINavigationController с пользовательскими переходами при нажатии и выталкивании с использованием протокола UIViewControllerAnimatedTransitioning:

class NavigationHandler: UINavigationControllerDelegate {
    func navigationController(_ navigationController: UINavigationController, animationControllerFor operation: UINavigationController.Operation, from fromVC: UIViewController, to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
        return CustomAnimator()
    }
}

class CustomAnimator: UIViewControllerAnimatedTransitioning {
    func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
        // do animation stuff
    }
}

Это отлично работает для pu sh и pop, но не работает для жест смахивания назад (который покажет переход по умолчанию). Я хотел бы настроить обратный удар, но не могу найти хороший способ сделать это.

Знания, которые я получил до сих пор:

  • Настройка моего собственного распознавателя жестов для обнаружения удара назад возможна, но UINavigationController все равно будет выполнять анимацию по умолчанию, поэтому теперь моя анимация борется с анимацией по умолчанию, которая кажется неправильной
  • UINavigationControllerDelegate имеет метод navigationController(:interactionControllerFor animationController:), который, кажется, это именно то, что мне нужно, но он вызывается только для обычных операций push / pop, а не для прокрутки назад
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...