2009-10-23 69 views
0

假设我有一个需要访问视图的ViewController。在ViewController的类文件,我做iPhone:在代码中访问ViewController中的视图对象

IBOutlet ViewA *someview; 

而且在界面生成器,我拖放我的文档中的UIView和类设置为ViewA

我很想念通过IB连接时如何实例化“东西”。将.xib文件解压后,是否自动分配ViewA?如果我不想使用IB,该怎么办?

回答

1

如果你不想使用IB,而不是把那IBOutlet中有,你只是消灭它,只留下

ViewA *someview; 

,然后在某处你的代码,当你需要看,你做a

someView = [[UIView alloc] initWithFrame: rect]; 

我更喜欢IB,其他人更喜欢以编程方式创建视图。我喜欢我如何定位所有的视图子视图,包括UIButtons,UILabels,UITableViews,其他UIViews等,而不必使用坐标来这样做。因人而异。

至于什么时候事情被实例化,当使用XIB时,你的应用程序可能会延迟加载视图控制器,一旦它被加载,它将加载你的视图。什么实际加载你的视图,是当你第一次访问变量some​​View。虽然存在插座连接,但视图及其子视图在您以任何方式访问某个视图之前都不会加载,例如,如果您只是执行以下操作:

if (someview) { 
    // the view is loaded now 
} 
相关问题