使用字符串变量代替按钮名称

时间:2013-03-14 02:44:08

标签: objective-c

我想创建一个字符串来代替按钮的名称。

例如,我想以编程方式设置按钮的背景。但我希望这个名字来自一个字符串变量。这样,如果我想更改一个名为的按钮的背景图像 Button1,我可以将“Button1”放入我的NSString并将其命名为myButton ...然后将实际的Button1引用为“myButton”

我该怎么做?

1 个答案:

答案 0 :(得分:1)

我不太清楚你到底想做什么,但我会猜测。

假设您IBOutlet引用了UIButton,就像这样

@interface MyViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIButton * myButton;
@end

您可以使用KVC在给定属性名称

的情况下更改该按钮的值
@implementation MyViewController

- (void)changeBackgroundOfButtonNamed:(NSString *)buttonName {
    UIButton * button = [self valueForKey:buttonName];
    // Change the background
    // ...
}

- (void)whatever {
    [self changeBackgroundOfButtonNamed:@"myButton"];
}