【发布时间】:2015-10-08 21:54:21
【问题描述】:
我有一个 UINavigationController 子类,它管理自定义导航栏。此导航栏的外观取决于顶视图控制器。我向顶视图控制器询问-pushViewController:animated: 或-popViewControllerAnimated: 发生时要显示的栏的类型。
问题是,当用户开始滑动时会播放导航栏类型更改,但我找不到任何告诉我滑动成功与否的事件,所以如果用户取消滑动,我坚持前一个视图控制器在导航堆栈中具有所需的导航栏外观。
我试过UINavigationControllerDelegate,但-navigationController:didShowViewController:animated: 和-navigationController:didShowViewController:animated: 都没有被调用。我的第二个想法是使用interactiveGestureRecognizer,但它似乎在成功和取消向后滑动时都成功结束,并且在调用识别器事件时topViewController 也仍然相同。
我知道,顶视图控制器的 -viewDidAppear 将在取消滑动时再次被调用,但我不希望我的用户在他们的控制器中实现任何逻辑来支持我的导航实现。
有什么想法吗?
【问题讨论】:
标签: objective-c uinavigationcontroller uigesturerecognizer