我如何访问programatillcay到我使用Interface builder创建它的子视图?

时间:2011-11-09 13:51:21

标签: iphone objective-c

我想知道如何调用(访问)我使用IB创建它的子视图 我已经使用过这段代码,但没有机会:

mySubView * mysbv = [mySubView alloc];
[mysbv setNeedsDisplay:YES];

但是我会得到编译错误说未声明的mySubView我在哪里创建mySubView类并将其附加到IB内的窗口。

顺便说一句,使用IB的组件是好的做法还是我必须以编程方式创建它们(虽然我也有问题)?

2 个答案:

答案 0 :(得分:3)

如果您尝试声明视图然后在Interface Builder中访问它,请在您的类中将UIView声明为IBOutlet。 在IB中添加任何视图后,您可以控制从文件所有者点击要与其关联的视图。

此外,如果UIView是您的自定义类(在本例中为mySubView),请确保将UIView的类更改为mySubView。这可以在IB的Identity Inspector中找到。

答案 1 :(得分:0)

使用nib文件功能更强大;一般而言,创建UI元素的代码示例来自Apple在iPhone OS支持IB之前的史前时代。

您的代码示例确实不起作用 - 您不能单独使用alloc。为视图控制器创建一个IBOutlet属性,并将其连接到您的视图;它可以从awakeFromNib / viewDidLoad开始使用。