从笔尖重新构造物体 - 只需加水?也许不吧

时间:2009-07-02 00:04:59

标签: iphone cocoa-touch uiview uiviewcontroller interface-builder

我读过很多关于在IB中设置UI的优点的讨论。当笔尖被“唤醒”时,它中的所有物体“变得生动”。

我正在尝试将大约10个UIView对象放入由ViewController拥有的nib中。 UIView对象属于MyView类型,并连接回ViewController中各自的属性。 MyView是UIView的子类,带有一些其他属性,如UIImage * image& NSNumber *值。

笔尖显然加载,因为我可以看到一些其他UIImageView元素也在笔尖中。但是当我尝试在10个MyView对象中的一个中设置属性时,我无法做到。在调试器中,这些对象的属性仍然是0x0。

我还认为我的MyView类中的initWithCoder方法会因为这10个对象中的每一个从睡眠中醒来而触发,所以我可以在运行时设置一些属性?!

任何人都知道发生了什么......我很高兴放弃IB,但我想我试一试......

3 个答案:

答案 0 :(得分:2)

viewDidLoad是在创建视图中的所有对象时调用的第一个方法。 initWithCoder在它们之前被调用。

viewWillAppear在viewDidLoad之后调用,并在显示任何内容之前调用 - 每次调用它时,只在创建视图对象时调用viewDidLoad。

答案 1 :(得分:1)

首次访问UIViewControllers媒体资源时,

self.view会加载观看次数。尝试查看控制器的viewDidLoad方法是否被调用。

另外,我记得在某处(可能是Apple文档)阅读不建议从笔尖加载多个独立视图,主要是因为内存使用。

答案 2 :(得分:0)

我怀疑您可能已将视图分配给文件所有者。

开放IB。在窗口中有。 文件的所有者 第一反应者 图

右键单击“视图”对象。 如果它只有一个选项 “新引用插座”然后它意味着您没有将视图连接到文件所有者。 只需抓住旁边的那个小o并将其拖动到文件所有者。 一旦超过文件所有者,就会弹出一个新菜单,您可以选择“查看”

保存并查看现在是否正常。

最后检查“文件所有者”是否已设置为您的班级,您只需选择文件所有者并进行检查即可。在其中一个下拉列表中,您将能够选择该类。

IB很酷。不要放弃......节省高达70%的设置代码(如Apple的WWDC所述),坚持下去。

约翰。