2010-01-14 96 views
1

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

它似乎发生一旦子视图的retainCount从3下降到2.我对iPhone开发相当新,并没有完全理解内存管理的复杂性,所以我可能会漏掉一些明显的东西。任何人都可以阐明我的问题可能是什么?任何帮助将不胜感激。谢谢。

回答

1

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

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

+0

谢谢,我会试试看。当另一个视图控制器从导航堆栈弹出后重新显示视图时发生。 – angelo 2010-01-14 18:02:42

+0

谢谢!我已确认收到低存储器警告消息时发生了这种情况。 – angelo 2010-01-14 18:19:42

+0

谢谢!它为我们工作。解决方法是:在父视图的控制器的viewDidLoad事件上添加子视图。 – 2012-01-26 15:08:34