【发布时间】:2014-08-05 06:10:07
【问题描述】:
我遇到了一个问题,但我不知道为什么会发生;如果我将细节控制器推入堆栈,并使用默认的左边缘interactivePopGestureRecognizer 快速向后滑动,我的父/根视图控制器的UINavigationBar 看起来已损坏或其他东西,几乎就像内置的 iOS 转换机制没有在详细视图消失后,有时间完成重置它的工作。还要澄清一下,这个“损坏”UINavigationBar 中的所有内容仍然是可触摸的,并且我的父/根视图控制器上的所有内容都可以正常工作。
对于因没有源代码而投反对票的人:没有源代码!这是 Apple 的错误!
有没有办法将此UINavigationBar 重置为调用父/根视图控制器的 viewDidAppear 方法时的状态?
请注意,如果我点击左上角的后退按钮而不是使用左边缘interactivePopGestureRecognizer,则不会出现此错误。
编辑:我添加了一个 NSLog 来检查父/根视图控制器上 viewDidAppear 上导航栏的子视图计数,并且计数始终相同,无论是否损坏,所以我想知道为什么弹出的控制器正在运行对我的UINavigationBar 造成严重破坏。
如果您能帮到我,我将不胜感激!谢谢。
我附上了它的截图:请注意,后面的 V 形不是我的父/根视图控制器的一部分,它是从堆栈中弹出的内容的一部分。 Testing123 是父/根视图控制器的标题,而不是从堆栈中弹出的标题。头部和齿轮图标是父/根视图控制器的一部分。
编辑:我认为这样的事情可以解决问题,但事实证明并没有,而且 IMO 的体验也非常糟糕。这不是我正在寻找的那种解决方案。我发布了一大笔赏金,所以可以正确解决这个问题! ????。我只是不能在生产质量的应用程序中出现这种奇怪的 UI 行为。
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.navigationController pushViewController:[UIViewController new] animated:NO];
[self.navigationController popToRootViewControllerAnimated:YES];
}
【问题讨论】:
-
这是否发生在模拟器和/或实际设备中?如果是设备,您使用的是哪种设备?
-
发生在模拟器和任何 iOS 设备上,以及任何高于 7.0 的 iOS 版本上
-
这很奇怪,你能发布任何代码或示例项目来说明这一点,因为我似乎根本无法复制这种行为。
-
是的,刚刚测试了您的代码并查看了您所描述的问题。我尝试通过 segue 推送第二个 vc 以查看是否有帮助,但您仍然可以通过该方法解决问题。代码很简单,它可能是 UINavigationController 的错误。我不知道为什么我不能在我自己的应用程序或我下载的任何应用程序中复制它。抱歉,我无法提供更多帮助。
-
不,也发生在设备上
标签: ios ios7 uinavigationcontroller uinavigationbar