0

所以,请注意,我是一个绝对的初学者。在 XCode 中,是否可以在动作中引用按钮的名称?所以我想使用 if 语句来检查按钮的名称(我也用作按钮后面的图像的名称)是否在已经创建的数组中。我在情节提要中创建了按钮,将其链接到 .h 文件,如:

- (IBAction)s11:(id)sender;

到目前为止,我在 .m 文件中的所有内容(与按钮有关)是:

- (IBAction)s11:(id)sender {
    if (  )
}
4

7 回答 7

1

sender 是指向您单击的按钮的指针。因此,您可以将其转换为 UIButton 并执行您需要的任何操作 - 检查它的标题、标签以及其他任何内容。

于 2013-05-02T09:15:55.340 回答
1

由于您需要检查按钮的名称,请使用以下命令:

- (IBAction)s11:(id)sender {
       UIButton *btn = (UIButton *)sender;
       if ([btn.titleLabel.text isEqualToString:@"BUTTON_NAME"]){
            // do your stuff
       }
}
于 2013-05-02T09:29:49.263 回答
0

试试看......
你可以为每个按钮分配一个“标签”属性

- (IBAction)s11:(id)sender 
{
     int i = [sender tag];
     NSLog(@"Button tag : %i",i);
     if (i == 0)
     {
        NSLog(@"btn 1 clk");
     }
     if (i == 1)
     {
        NSLog(@"btn 2 clk");
     }
}

希望我有所帮助。

于 2013-05-02T09:18:47.973 回答
0
- (IBAction)s11:(id)sender {
     UIButton *btn=sender;
if ([yourArray containsObject:[btn titleForState:UIControlStateNormal]]) {

}
于 2013-05-02T09:20:07.773 回答
0

如果您想在实现文件中全局引用该按钮,您有 2 个选项:

选项 A:为 Button 创建一个 IBOutlet 并使用分配的出口指针名称。选项 B:给你的 UIButton 一个唯一的标签,然后通过它的标签访问它,使用这个:

UIButton *myButton = (UIButton*)[self.view viewWithTag:255];

这里的标签号是 255,但你应该使用你自己的。

于 2013-05-02T09:28:28.163 回答
0

您可以使用titleForState:或可能currentTitle的方法。由于当前标题可以根据按钮状态而改变,我推荐titleForState:.

- (IBAction)s11:(UIButton *)button {
    NSString *title = [button titleForState:UIControlStateNormal];
    if ([self.theArray containsObject:title]) {
        // code
    }
}

这不是区分按钮的最佳方法,但您要求这样做。最好将这些按钮放在数组中。

于 2013-05-02T09:17:26.440 回答
0

您可以为每个按钮(属性检查器)分配一个“标签”属性并在您的代码中检查它

- (IBAction)s11:(id)sender {
    switch(sender.tag) {
       case 1: {
          ...
       }
       case 2: {
          ...
       }

      ...

    }
}
于 2013-05-02T09:17:05.777 回答