我一直在互联网上寻找解决方案。我什么也找不到。
所以:
我正在使用 UINavigationController。我将两个 UIViewController 推到上面。在第二个推送的 ViewController 中,我正在执行以下代码:
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error {
NSLog([error localizedDescription]);
[self.navigationController popViewControllerAnimated:YES]; }
预期会发生的事情是最后推送的 ViewController 消失。在这个应用程序中,我在几个地方执行此操作,除了这个 ViewController 之外,它在任何地方都工作得很好。
发生的情况是,只有后退按钮离开屏幕(动画),但其他所有内容都保留在屏幕上。当此行执行时,控制台输出中会打印出两件事:
2011-03-14 16:32:44.580
TheAppXY[18518:207] 嵌套弹出
动画可能会导致损坏
导航栏
2011-03-14 16:32:53.507
TheAppXY[18518:207] 完成
意外的导航转换
状态。导航栏子视图树
可能会被损坏。
我找不到任何信息的两个错误消息。
我正在使用 XCode 4 和 iOS SDK 4.3。也许任何人都可以帮助我解决这个问题。
我在我的代码中遇到了类似的情况,消息说:
嵌套的推送动画可能会导致导航栏损坏
在意外状态下完成导航转换。导航栏子视图树>可能会损坏。
我对这个问题的发现是,我快速连续地一个接一个地推动 2 个视图控制器,并且两个视图控制器都是动画的。
在您的情况下,您似乎可能会一个接一个地弹出带有动画的多个视图控制器。
因此,当一个视图正在进行动画时,您不应该在另一个视图上启动动画。
我还发现,如果我在一个视图上禁用动画,错误消息就会消失。
就我而言,这是流程逻辑的问题,因为我不打算一个接一个地推送 2 个视图控制器。一个在 switch case 逻辑中被推入,另一个在其结束后被推入。
希望这对某人有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)