某些视图控制器未调用viewDidUnload

时间:2011-02-01 17:13:25

标签: iphone objective-c

我有一个带2个视图控制器的UITabBar。第一个显示UITableView,第二个显示UITextView。 当我单击第一个选项卡以显示tabview,并在模拟器中发出内存警告时,会自动调用UITextView的didReceiveMemoryWarning,但是不会调用viewDidUnload。 当我点击第二个选项卡以显示文本视图,并在模拟器中发出内存警告时,将自动调用第一个视图控制器的didReceiveMemoryWarning,并且还会调用viewDidUnload。 所以我想知道为什么不调用第二个视图控制器的viewDidUnload方法。此外,如何在应用程序接收内存警告消息时自动调用第一个视图控制器(显示表视图)viewDidUnload方法。 感谢。

1 个答案:

答案 0 :(得分:0)

Apple文档暗示只有在从命名的NIB文件加载视图时才会发生自动视图卸载。如果UITextView视图是手动创建的,可以解释卸载。

关于第二部分,根据我的尝试,没有办法阻止自动卸载,因为它发生在基类中。如果有办法创建视图并“隐藏”它来自NIB的事实,那可能就是这样。