【发布时间】:2011-06-13 12:51:33
【问题描述】:
我有一个在 appDelegate 中实例化并推送到导航控制器的视图控制器。视图控制器的视图是使用 xib 文件创建的。 xib 文件将 UILabel 放在视图上(除其他外)。现在我需要以编程方式设置标签的文本属性,但我不知道如何获取对它的引用。如何引用标签对象?
我正在使用 xcode 3.2.5 并构建一个 iPad 应用程序。
【问题讨论】:
标签: objective-c ios uiview xib
我有一个在 appDelegate 中实例化并推送到导航控制器的视图控制器。视图控制器的视图是使用 xib 文件创建的。 xib 文件将 UILabel 放在视图上(除其他外)。现在我需要以编程方式设置标签的文本属性,但我不知道如何获取对它的引用。如何引用标签对象?
我正在使用 xcode 3.2.5 并构建一个 iPad 应用程序。
【问题讨论】:
标签: objective-c ios uiview xib
您使用所谓的“插座”来执行此操作。您在控制器中定义它们,将它们清楚地标记为IBOutlet,然后在 Interface Builder 中将它们连接到您的文件所有者(或在 IB 中创建的其他委托对象)。
例如,在您的FooController.m 中,您可能有这样的:
@interface FooController ()
@property (nonatomic, weak) IBOutlet UILabel* fooLabel;
@end
然后您将选择您的标签,然后控制从它拖动到文件所有者,或者转到其连接选项卡,然后从引用插座下的+ 拖动到文件所有者并选择fooLabel。
更新:代码示例已更改以反映处理此案例的现代方式。
【讨论】:
除了IBOutlets,您还可以在IB中的标签上设置标签属性。然后,当你需要它时,你可以这样做:
UILabel *label = (UILabel *)[self.view viewWithTag:111];
111当然是你在IB中分配给标签的标签。
【讨论】:
[self.view viewWithTag:NUMBER_OF_TAG]; 可以解决问题。但请记住,如果您想访问视图,您必须在 viewWillAppear 或 viewDidAppear 事件中进行。
【讨论】: