UINavigationController向后滑动时的自定义过渡

时间:2020-02-14 09:25:24

标签: ios swift navigation uinavigationcontroller uigesturerecognizer

使用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:),这似乎正是我所需要的方法,但是仅用于常规的推/弹出操作,而不能用于后向滑动

0 个答案:

没有答案