使用自定义交互式过渡时,默认的交互式“向后滑动”已禁用

时间:2018-09-06 08:11:45

标签: ios swift uinavigationcontroller

在我的应用中,我为某些视图控制器提供了自定义的交互式过渡。我说的是{/ {1}}推送/弹出的交互式过渡。对于所有其他视图控制器,我想使用默认的iOS交互式过渡(从左向右滑动以返回)。

要激活我的自定义交互式转换,我必须实现UINavigationController并实现UINavigationControllerDelegate回调。这样很好!但是,如果在某些情况下我尝试返回animationControllerFor,这意味着我不希望自定义过渡,而是使用默认过渡,它将完全禁用向后滑动!

重现该问题的代码:

nil

使用此class MainNavigationController: UINavigationController, UINavigationControllerDelegate { override func viewDidLoad() { super.viewDidLoad() self.delegate = self } func navigationController(_ navigationController: UINavigationController, animationControllerFor operation: UINavigationControllerOperation, from fromController: UIViewController, to toController: UIViewController) -> UIViewControllerAnimatedTransitioning? { return nil } } ,您的所有后退滑动都将在此导航控制器内被禁用!我没想到这一点。因为文档中说明了返回值:

  

负责管理过渡动画的动画对象,如果要使用标准导航控制器过渡,则为nil。

https://developer.apple.com/documentation/uikit/uinavigationcontrollerdelegate/1621846-navigationcontroller

有人知道我做错了什么还是错误吗?我在iOS 11和iOS 12 Beta上都尝试过。

0 个答案:

没有答案