在iOS中,如何引用使用xib文件创建的视图中的对象?

时间:2011-01-22 02:07:54

标签: objective-c ios uiview xib

我有一个在appDelegate中实例化并推送到导航控制器的视图控制器。视图控制器的视图是使用xib文件创建的。 xib文件在视图上放置UILabel(以及其他内容)。现在我需要以编程方式设置标签的text属性,但我不知道如何获取它的引用。如何引用标签对象?

我正在使用xcode 3.2.5并构建一个iPad应用程序。

3 个答案:

答案 0 :(得分:27)

除了IBOutlets,您还可以在IB的标签上设置标签属性。然后,当你需要它时,你可以这样做:

UILabel *label = (UILabel *)[self.view viewWithTag:111];

111当然是您在IB中分配给标签的标签。

答案 1 :(得分:9)

你用所谓的“出口”做到这一点。您可以在控制器中定义它们,将它们清楚地标记为IBOutlet,然后将它们在Interface Builder中连接到您的文件所有者(或在IB中创建的其他委托对象)。

例如,在您的FooController.m中,您可能会这样:

@interface FooController ()
@property (nonatomic, weak) IBOutlet UILabel* fooLabel;
@end

然后,您可以选择标签,然后控制从中拖动到文件所有者,或转到其连接标签,然后从引用插座下的+拖动到文件所有者,然后选择{{ 1}}。

更新:代码示例已更改,以反映处理此案例的现代方式。

答案 2 :(得分:0)

[self.view viewWithTag:NUMBER_OF_TAG];可以解决问题。但请记住,如果要访问视图,则必须在viewWillAppear或viewDidAppear事件中执行此操作。