是否可以在不声明 IBOutlet 属性的情况下访问 IB 对象(例如 UILabel)?

Posted

技术标签:

【中文标题】是否可以在不声明 IBOutlet 属性的情况下访问 IB 对象(例如 UILabel)?【英文标题】:Is it possible to access an IB object (say, a UILabel) without declaring a IBOutlet property? 【发布时间】:2010-07-26 10:41:55 【问题描述】:

我有 20 多个标签需要在运行时更新,我想知道是否可以在不必为所有标签声明属性和出口的情况下访问它们。我尝试为每个标签分配一个唯一的标签,并通过我的视图控制器中的视图访问它们,如下所示:

 self.view.myLabel1.text = @"Some text";

但它没有工作。有没有办法做到这一点?

谢谢

【问题讨论】:

【参考方案1】:

标签方法是正确的,但您必须以不同的方式访问标签。假设self.view 是标签的父视图并且所有标签都有一个唯一的标签(整数),你可以像这样得到它们:

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

【讨论】:

谢谢。你能举一个“设置”带有标签的 UILabel 的文本的例子吗? 得到标签对象后,只需为其text属性赋值:label.text = @"My Text";【参考方案2】:

据我所知,如果您不声明 Xcode,Xcode 对您的 xib UIElements 一无所知。 很久以前我也遇到过类似的困境,从那时起,当我拥有大量同类对象时,我更喜欢通过编程方式创建它们来使它们可重用。

祝你好运

【讨论】:

以上是关于是否可以在不声明 IBOutlet 属性的情况下访问 IB 对象(例如 UILabel)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用助手编辑器的情况下将 IBOutlet 和 IBAction 连接到视图控制器

在不使用 IBOutlet 的 xib 中获取手势识别器的参考

是否可以在不声明其方法的情况下保留裸类定义?

是否可能 HTML 下载属性可以在不使用 javascript 的情况下下载多个文件?

是否可以在不调用新活动的情况下获取对象值?

是否需要释放一个 IBOutlet 控件? (非弧)