2011-01-22 69 views
10

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

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

回答

27

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

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

111当然是你分配给IB标签的标签。

+1

这很好。我从来不知道如何使用标签,现在我知道。非常感谢你! – RobertL 2011-01-22 17:10:33

9

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

例如,在你的FooController.m你可能有这样的:

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

那么你会选择你的标签,并从它要么调速拖动文件所有者,或者去它的连接选项卡,并从拖参考插座下的+,给文件所有者并选择fooLabel

UPDATE:代码示例已更改为反映现代处理此案例的方式。

+0

这是一个很好的和有帮助的答案。谢谢。我会给它一个绿色的支票,但显然我不能给两个不同的答案检查,即使他们都很好,我已经检查了另一个。 – RobertL 2011-01-22 17:09:54

0

[self.view viewWithTag:NUMBER_OF_TAG];这样做。但请记住,如果您想访问视图,您必须在viewWillAppear或viewDidAppear事件上执行此操作。

相关问题