动态更改UIView

时间:2009-10-31 07:13:54

标签: objective-c iphone uiimageview

使用cs193p(ian编程的stanford在线视频),我正在进行Presence1练习

我正在尝试动态更改UIView,它是另一个视图的子视图。

对于那些不了解课程发布的作业的人,基本上应用程序的架构如下:

导航控制器 - > (根)视图控制器 - (VC)1用于第一屏幕 - >调用详细信息查看控制器VC2以进行下一屏幕

现在第一个屏幕有我想要从我的模型动态加载的图像和文本(这是我在导航堆栈中推送第一个VC之前在App委托中实例化的对象。我在initWithNibName中定义了一个参数初始化VC1的nib时传递此模型对象的方法。我还尝试在此处以及viewDidLoad和viewDidAppear方法中设置模型中的图像。它不起作用。

当我调试时,我看到传递的模型对象是空的。

如果你明白这个问题,请告诉我我错过了什么。
如果需要,我可以发布代码,但必须发布整个事情才有意义。

1 个答案:

答案 0 :(得分:1)

Nailed - 我在不需要时释放我的模型对象 - 我正在为模型中存在的一个对象创建一个“引用”(包含对象列表的数组)。注意 - 我没有使用alloc / copy创建新对象。我当时正在释放它(即使在推送到导航堆栈之后) - 显然导致我的对象内存空间被清除并且反映在我的视图控制器中,它接收该模型对象作为其init方法中的参数。这给人一种错觉,即对象没有传递给视图控制器!

之前的经验教训 - 要非常注意释放物品。
今天的经验教训 - 释放物品时要非常小心。不要过度释放对象 - 确保只有在调用alloc / copy或明确保留对象时才释放对象 - 内存管理101 - 重新访问:)


感谢大家不回答这个问题。在某种程度上,它迫使我在非常微观的层面上仔细检查我的代码,我相信在我的余生中我不会忘记这一点! :)