UITabViewController内存管理

时间:2009-10-10 00:31:35

标签: iphone memory sdk uitabbarcontroller

我有一个应用程序,其中包含由UITabBarController派生的类管理的多个选项卡(我将UITabBarConteroller子类化的唯一原因是处理所有视图的抖动事件)。 3个视图来自子类UIViewContentroller类,一个视图是UINavigationController,它显示了一个表。 在我拥有的每个控制器中,包括我的子类控制器,我都有:

  • (void)didReceiveMemoryWarning { //如果视图没有超视图,则释放视图。 [super didReceiveMemoryWarning];

App效果很好。我的问题是UITabBarController的默认实现如何在低内存条件下处理自动视图卸载。

只有从UINavigationController驱动的控制器才会自动卸载(我看到调用了viewDidUnload)。不为UITabBarController管理的任何其他视图控制器调用viewDidUnload。

为什么?

由于

1 个答案:

答案 0 :(得分:0)

当视图控制器的视图被删除并取消分配时,会调用viewDidUnload,这会在VC收到didReceiveMemoryWarning后发生。检查首先调用的方法。如果它没有被调用,则会发生其他事情,但如果正在调用它,那么您的视图可能会被保留或未被正确删除。