将字符串转换为IBOutlet UIButton对象名称

时间:2011-12-04 22:09:21

标签: objective-c

有24个按钮,它们的标签从具有7个段的UISegmentedControl驱动的功能发生变化。还有一个带有9个不同对象的UIPickerView。这两个动态地改变了按钮的标签。然后,当按下一个按钮时,我必须知道所选的UIPickerView对象,UISegmentedControl选择以及哪个按钮。

我接收和执行的功能是:

- (int)ButtonPlayController:(int)buttonPressed {

   NSString *button = [NSString stringWithFormat:@"%@%i", @"button", buttonPressed];

   if (button.titleLabel.text == @"1C") {

       [self Play1C];

   }

  else if .....

}

该函数接收一个数字(按钮编号)并组合字符串名称以创建UIButton名称,例如如果函数收到数字8,则UIButton名称为button8(我已经在我的.h文件中IBOutlet UIButton *button8;

我记得这些关于PHP的工作但是对象C呢?为了实现这一目标,我需要改变什么?

1 个答案:

答案 0 :(得分:0)

在评论中看起来有一些指针,但我想知道你为什么用这种方式实现你的目标动作?也许你的程序中有一部分我不明白,但为什么不把这个按钮作为参数传递给行动的接收者:

- (IBAction)doStuffWithButton:(id)sender
{
    if ( sender.tag == 1 )
    {
        [self actOnOne];
    }
    else if ( sender.tag == 2 )
    {
        ....
    }
}

就像我说的,这不能回答你原来的问题,但也许不同的设计模式会让事情变得更容易?

相关问题