将"animated"设置为 "YES" 的视图控制器时,iOS 应用程序崩溃,但当"animated"设置为 "NO" 时工作正常



好了,现在这对我来说真的很令人费解,我真的无法理解它…我用谷歌搜索了一下,还是一无所获。

我有一个UINavigationController设置推送一个根视图控制器。根视图控制器然后推送一个新的视图控制器(实际上是一个TableViewController)当UIButton被按下时,这就是事情变得奇怪的地方。

只有当我将"animated"设置为"YES"时,应用程序才会崩溃。

[[self navigationController] pushViewController:listView animated:YES];

如果我改变这一点,并将"动画"设置为"NO",应用程序继续正常运行,功能非常好…我把"animated"设置回"YES",它又崩溃了。

最终,如果我能保留动画,我会很高兴的,毕竟这是iOS最美丽的东西之一,但在目前的情况下,我一辈子都不知道发生了什么。

请帮我找出这里可能出了什么问题。

当动画打开时,Core animation正在访问CALayer对象,即从根视图控制器和新视图控制器中绘制的视图部分。当动画关闭时,核心动画不需要根视图控制器的CALayer对象。也许你在根视图中释放了一些视图它支持CALayer对象的速度太快了。

谢谢Berna先生,实际上是您给了我解决问题的建议。问题是我推送的视图控制器实际上是一个表视图控制器,它的单元格是根据NSArray中找到的条目动态创建的。我在viewDidLoad函数中初始化了NSArray,但是我已经将它设置为自动释放,所以它在CALayer绘制视图之前被从内存中释放。

最新更新