我有一个视图控制器在appDelegate中实例化并推送到导航控制器上。视图控制器的视图是用一个xib文件创建的。 xib文件在视图上放置一个UILabel(等等)。现在我需要以编程方式设置标签的文本属性,但我看不到如何获取对它的引用。我如何参考标签对象?在iOS中,如何引用用xib文件创建的视图中的对象?
我正在使用xcode 3.2.5并构建一个iPad应用程序。
我有一个视图控制器在appDelegate中实例化并推送到导航控制器上。视图控制器的视图是用一个xib文件创建的。 xib文件在视图上放置一个UILabel(等等)。现在我需要以编程方式设置标签的文本属性,但我看不到如何获取对它的引用。我如何参考标签对象?在iOS中,如何引用用xib文件创建的视图中的对象?
我正在使用xcode 3.2.5并构建一个iPad应用程序。
除了IBOutlets
,您还可以在IB的标签上设置标签属性。然后,当你需要它时,你可以这样做:
UILabel *label = (UILabel *)[self.view viewWithTag:111];
111当然是你分配给IB标签的标签。
你可以用所谓的“出口”来做到这一点。您可以在控制器中定义它们,将它们清楚地标记为IBOutlet
,然后在Interface Builder中将它们连接到文件所有者(或在IB中创建的其他代理对象)。
例如,在你的FooController.m
你可能有这样的:
@interface FooController()
@property (nonatomic, weak) IBOutlet UILabel* fooLabel;
@end
那么你会选择你的标签,并从它要么调速拖动文件所有者,或者去它的连接选项卡,并从拖参考插座下的+
,给文件所有者并选择fooLabel
。
UPDATE:代码示例已更改为反映现代处理此案例的方式。
这是一个很好的和有帮助的答案。谢谢。我会给它一个绿色的支票,但显然我不能给两个不同的答案检查,即使他们都很好,我已经检查了另一个。 – RobertL 2011-01-22 17:09:54
[self.view viewWithTag:NUMBER_OF_TAG];
这样做。但请记住,如果您想访问视图,您必须在viewWillAppear或viewDidAppear事件上执行此操作。
这很好。我从来不知道如何使用标签,现在我知道。非常感谢你! – RobertL 2011-01-22 17:10:33