【问题标题】:Dynamically added subview disappears动态添加的子视图消失
【发布时间】:2011-01-05 04:19:26
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,我会试试的。当另一个视图控制器从导航堆栈中弹出后重新显示视图时会发生这种情况。
    • 谢谢!我已确认收到内存不足警告消息时正在发生这种情况。
    • 谢谢!它对我们有用。解决方案是:在父视图控制器的 viewDidLoad 事件上添加子视图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    相关资源
    最近更新 更多