在UINavigationController中获取有关不成功的后滑动手势的通知

gkl*_*lka 7 objective-c uinavigationcontroller uigesturerecognizer

我有一个UINavigationController子类,它管理一个自定义导航栏.此导航栏的外观取决于顶视图控制器.我向顶视图控制器询问何时-pushViewController:animated:-popViewControllerAnimated:发生的条形图类型.

问题是,当用户开始滑动时会播放导航栏类型更改,但我找不到任何告诉我滑动成功的事件,因此如果用户取消滑动,我会卡在前一个视图控制器上在导航堆栈中使用所需的导航栏外观.

我试过了UINavigationControllerDelegate,但既没有-navigationController:didShowViewController:animated:也没有-navigationController:didShowViewController:animated:被召唤.我的第二个想法是使用interactiveGestureRecognizer,但似乎它在成功和取消后滑动时都成功结束,并且在topViewController调用识别器事件时也是如此.

我知道,顶视图控制器-viewDidAppear将在取消滑动时再次调用,但我不希望我的用户在其控制器中实现任何逻辑以支持我的导航实现.

有任何想法吗?

mat*_*tes 4

尝试使用 UINavigationControllerDelegate,您可以依靠它的回调来知道 viewController 何时显示或不显示。

获取 InteractivePopGestureRecognizer 关闭回调/事件