Ios CoreAnimation堆栈快疯了

Ios CoreAnimation堆栈快疯了,ios,ios4,core-animation,calayer,quartz-2d,Ios,Ios4,Core Animation,Calayer,Quartz 2d,我被要求帮助一个客户修复一个bug,他是一个缺乏经验的开发人员。然而,我完全被这件事难住了 问题是,在打开和关闭视图控制器(该视图控制器被推到导航控制器上)之后,所有子视图都将消失(包括导航栏项),并直接显示到窗口。发生这种情况后,我仍然可以按下导航栏上的按钮,但它们会在触摸时立即消失,如果不退出并重新启动,就不可能恢复稳定的UI状态。另一个模糊的副作用是,关闭应用程序后,当我在屏幕之间滑动时,Springboard将闪烁。我最初的想法是这是一个内存问题(例如,在内存警告时释放子视图),但我已经

我被要求帮助一个客户修复一个bug,他是一个缺乏经验的开发人员。然而,我完全被这件事难住了

问题是,在打开和关闭视图控制器(该视图控制器被推到导航控制器上)之后,所有子视图都将消失(包括导航栏项),并直接显示到窗口。发生这种情况后,我仍然可以按下导航栏上的按钮,但它们会在触摸时立即消失,如果不退出并重新启动,就不可能恢复稳定的UI状态。另一个模糊的副作用是,关闭应用程序后,当我在屏幕之间滑动时,Springboard将闪烁。我最初的想法是这是一个内存问题(例如,在内存警告时释放子视图),但我已经清除了所有泄漏并检查了所有出口的viewDidLoad/viewDidUnload处理,问题仍然存在。所以现在我认为有了跳板效应,代码在某种程度上完全搞乱了核心动画的状态


以前有人见过这样的东西吗?或者你知道怎么可能把这搞得一团糟吗?我会附加一些屏幕截图,但当应用程序处于这种状态时,尝试用手机截图会导致系统崩溃。

我没有遇到过这种情况,但可能是内存警告正在吞噬您的一些视图

我知道iOS可以自由卸载不可见的视图控制器


我会在viewdidunload或类似程序中插入一个断点,看看是否会触发此错误。

事实证明,此错误是由在拥有superview时解除分配的
UIView
引起的