У меня есть 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, а не для прокрутки назад