iPhone:从Code中的ViewController访问视图对象

时间:2009-10-23 07:43:57

标签: objective-c iphone

假设我有ViewController需要访问视图。在我正在做的ViewController的类文件中

IBOutlet ViewA *someview;

在Interface Builder中,我将UIView拖放到我的文档中,并将类设置为ViewA

我错过了当你通过IB连接时如何实例化“东西”。在.xib文件取消存档时是否自动分配ViewA?如果我不想使用IB怎么办?

1 个答案:

答案 0 :(得分:1)

如果您不想使用IB,而不是将IBOutlet放在那里,您只需消除它,只留下

ViewA *someview;

然后在代码中的某个地方,当您需要视图时,执行

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

我更喜欢IB,其他人更喜欢以编程方式创建视图。我喜欢如何定位所有视图子视图,包括UIButtons,UILabels,UITableViews,其他UIViews等,而不必使用坐标来执行此操作。 YMMV。

当事情被实例化时,当使用XIB时,你的应用可能会懒洋洋地加载视图控制器,一旦加载,它就会加载你的视图。实际上加载视图的是当你第一次访问变量some​​View时。虽然有一个插座连接,但在您以任何方式访问someView之前,视图及其子视图都不会加载,例如,如果您只是执行以下操作:

if (someview) {
  // the view is loaded now
}