在iOS中以编程方式初始化IB控件

时间:2012-07-22 14:01:26

标签: objective-c ios interface-builder

我有一个简单的应用程序,我想加载UI元素的初始设置。但我不想对每个人都有IBOutlet。有没有办法以编程方式解决它们并设置它们的值。例如:

if (user hasn't created a default){
   // load the default settings
   button1 = 12;
   label.text = text;
   etc...
}

2 个答案:

答案 0 :(得分:3)

IBOutlet的全部目的是让您可以以编程方式设置和获取其值,因此我不太明白为什么不使用IBOutlet。通常,当您在Interface Builder中创建时,您可以使用IBOutlets进行以编程方式进行交互所需的任何操作。 (显然,以编程方式创建它们时,您不需要IBOutlet。)

但是,如果确实想要在Interface Builder中添加控件而不使用IBOutlets,则可以在“视图”下的属性检查器中将数字tag属性设置为一些唯一值“设置。然后,您可以以编程方式从视图控制器中为[self.view viewWithTag:tagNumber];检索该引用。这更尴尬,效率更低,所以我真的鼓励你使用IBOutlet。是否有一些令人信服的理由不?

答案 1 :(得分:2)

对于UIButtons是

[button addTarget:self action:@selector(signatureOfYourMethod) forControlEvents:UIControlEventTouchUpInside];