当“动画”设置为“是”时推送视图控制器时iOS应用程序崩溃,但当“动画”设置为“否”时工作正常

时间:2011-08-22 12:50:34

标签: ios xcode crash pushviewcontroller animated

好的,现在这对我来说真是令人难以置信,我真的无法理解......我用谷歌搜索了,但仍然没有。

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

如果我将“动画”设置为“是”,则应用只会崩溃。

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

如果我更改此设置并将“动画”设置为“否”,应用程序将继续正常运行并且功能非常出色...我将“动画”设置为“是”,然后再次崩溃。

最终,我会喜欢它,如果我能保留动画,它毕竟是关于iOS的最美好的事情之一,但在目前的情况下,我不能为我的生活弄清楚发生了什么

请帮我弄清楚这里可能出现的问题。

2 个答案:

答案 0 :(得分:1)

当动画启动时,Core Animation正在从根视图控制器和新视图控制器访问CALayer个对象,视图的绘制部分。关闭动画时,Core Animation不需要根视图控制器的CALayer个对象。也许您在根视图中发布了一些视图,并且它过快地支持CALayer对象。

答案 1 :(得分:1)

谢谢Berna先生,你实际上给了我一个提示我解决方案的提示。问题是我正在推动的视图控制器实际上是一个表视图控制器,其单元格是根据NSArray中的条目动态创建的。我在viewDidLoad函数中初始化NSArray,但是我已将其设置为自动释放,因此在CALayer绘制视图之前它已从内存中释放。