使用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
}
}
这对于按下和弹出都很有效,但不适用于向后滑动手势(它将显示默认过渡)。我想自定义后向滑动,但是找不到一种很好的方法。
我到目前为止获得的知识:
UINavigationController
仍将执行默认动画,因此现在我的动画与默认动画作斗争了,这似乎是错误的UINavigationControllerDelegate
具有方法navigationController(:interactionControllerFor animationController:)
,这似乎正是我所需要的方法,但是仅用于常规的推/弹出操作,而不能用于后向滑动