使用自定义导航转换动画后的奇怪UINavigationItem行为

时间:2015-07-13 16:40:53

标签: ios objective-c animation uinavigationcontroller

我正在做一个自定义UINavigationController弹出过渡动画。 但是有一个奇怪的错误,我已经做了一个示例项目来证明这个问题(取自https://github.com/objcio/issue5-view-controller-transitions

基于导航的应用,2个视图控制器。

第一个viewController在navigationBar上有2个按钮项,在视图中间有一个按钮,可以推送到第二个viewController。

第二个viewController有一个左栏按钮项目,用于弹出第一个viewController。

如果第二个视图控制器的拖动率低于50%,我的自定义动画将取消转换,如果它超过50%,它将完成转换,弹出viewController。 (就像系统默认值一样)

但是,如果转换被取消,第一个视图控制器上的导航项将被覆盖。

"返回"项目将出现在第一个视图控制器上,右侧的条形按钮项目将消失。

这是要展示的视频:https://youtu.be/qg2lUKsNtzk

源代码在github上:https://github.com/JohnnyTseng/issue5-view-controller-transitions

有人可以指出问题出在哪里吗?我整天都在调试这个问题。谢谢!

1 个答案:

答案 0 :(得分:0)

在iOS 7 Apple中添加新的默认导航行为。您可以从屏幕的左边框滑动以返回导航堆栈。

您可以通过将此代码放在应用程序委托中来阻止此操作。

 if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = NO;
    }

你可以在这里阅读更多interactive pop gesture of navigation view controller