【发布时间】:2014-01-10 22:03:28
【问题描述】:
所以几年前我创建了一个非常简单的自定义 NavigationController,当然它是 UINavigationController 的子类,它覆盖的唯一方法是
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item
在其中我显示了一个 UIAlertView,要求用户确保他们想要返回。当他们选择是时,它会使用
返回[self popViewControllerAnimated:YES];
使用新的从左向右滑动手势返回上一个屏幕时,除了 iOS 7 之外,一切正常。 它正确地返回到上一个屏幕,但顶部导航栏没有改变。
例如,如果我在主屏幕上单击第 1 行。视图将发生变化,导航栏将显示第 1 行作为标题,并在左上角显示一个“
单击“
如果我从左向右滑动返回,视图将返回到我的主屏幕,但导航栏仍将显示“
我尝试只使用 UINavigationController 而不是我的自定义类,它子类化并且滑动功能正常工作,所以我知道这就是问题所在。我必须在我的自定义类中错过一个电话或其他东西
有什么想法吗?
谢谢!
编辑:
我刚刚稍微编辑了我的 CustomNavigation 代码,现在它似乎可以工作了。当出于某种原因使用左上角的后退按钮时,shouldPopItem 被调用了两次,所以我有一些代码让它在 iOS 6 及更低版本中正常工作。 使用滑动手势时,我注意到它只被调用一次,而且我第一次弹出控制器但返回 NO(这就是导航栏没有改变的原因)。我现在检查 iOS 7 并立即返回 YES,这解决了问题并且现在可以正常工作。
【问题讨论】:
标签: ios ios7 uinavigationcontroller uinavigationbar