我创建了一个通用的nib文件“MyGenericView.xib”,其所有者(为了可重用性)是UIViewController。
在我的课程中,我可以成功加载视图
[[NSBundle mainBundle] loadNibNamed:@"MyGenericView" owner:self options:nil];
但是,我在同一个通用视图中将标签定义为子对象。 我如何访问它并重载(例如)label.text?
在正常情况下,我会将我的笔尖的文件所有者设置为我的特定控制器,并将IBOutlet连接到文件所有者。 由于文件所有者(在我的通用情况下)是UIViewController,这是不可能的。
提前致谢
答案 0 :(得分:0)
在界面构建器中,将标签的标签设置为,例如,1。您可以在属性检查器的“查看”部分中找到标记字段。然后使用 viewWithTag:方法:
// given that the label we seek is in the self.view hierarchy
//if not, change accordingly
UILabel* myLabel = (UILabel*)[self.view viewWithTag:1];
此外,如果您碰巧遇到与表格单元格类似的问题,我建议您使用UINib class。当您不需要将任何操作委托给文件所有者时,此类很棒,您可以在没有任何所有者的情况下实例化您的对象。