动态添加的子视图消失

时间:2010-01-14 17:15:34

标签: iphone objective-c memory-management uiview subview

我有一个UIView,它被创建并动态添加为子视图,而不是在界面构建器中。问题是子视图最终会消失,屏幕上剩下的所有内容都是正在加载的xib中定义的对象。

一旦子视图的retainCount从3下降到2,似乎就会发生。我对iPhone开发相当新,并且不完全了解内存管理的复杂性,所以我可能会遗漏一些明显的东西。可能是我的问题?

1 个答案:

答案 0 :(得分:1)

这只是一个疯狂的猜测,但是低内存警告可能导致视图从内存中被清除,并且当重新加载时视图不再存在,因为如果发生这种情况,viewDidLoad中没有任何内容可以重新显示它。您可能需要将视图存储在ivar中,然后让viewDidLoad再次添加它(如果存在)。

您可以通过在模拟器中运行来测试此理论,然后使其生成低内存警告,以查看是否会使视图消失。如果当前显示视图,我不会认为会发生这种情况,因此请确保当时显示其他视图。