Подтвердить что ты не робот

Как определить, какая кнопка нажата, если они оба имеют один и тот же IBAction?

У меня есть два UIButtons (я создаю их с помощью IB), которые связаны с владельцем файла с тем же IBAction, как я могу определить, какие из них нажаты?

4b9b3361

Ответ 1

Ваше действие может быть выполнено следующим образом:

- (IBAction) buttonTapped: (id) sender
// you can also replace id with UIButton*

Затем внутри этого метода вы можете проверить с помощью -isEqual: method

- (IBAction) buttonTapped: (id) sender
{
   if ([sender isEqual:referenceToOneOfYourButtons]) {
   // do something
   }
   else if ([sender isEqual:referenceToTheOtherButton]) {
   ...
   }
}

В качестве альтернативы вы можете настроить разные значения для свойства тега для кнопок, а затем:

- (IBAction) buttonTapped: (UIButton*) sender
{
   const int firstButtonTag = 101;
   const int otherButtonTag = 102;

   if (sender.tag == firstButtonTag) {
   ...
   }
   else if (sender.tag == otherButtonTag) {
   ...
   }
}

Вам нужно настроить этот тег либо в вашем .xib, либо в коде.

Ответ 2

Что-то в этих строках... при условии, что кнопки1 и button2 находятся в вашем файле заголовка.

- (IBAction)buttonPressed:(UIButton *)button {
        if (button == button1) {
        } else if (button == button2) {
        }
}

Или установите тег в Interface Builder и проверьте тег.

- (IBAction)buttonPressed:(UIButton *)button {
            if (button.tag == 1) {
            } else if (button.tag == 2) {
            }
    }

Теги НЕ основаны на нуле. Используйте 1 или больше.

Ответ 3

Объявите свое действие как

- (IBAction)someAction:(id)sender;

Когда элемент управления отправляет сообщение someAction, он отправляет себя в качестве параметра отправителя.

например.

- (IBAction)someAction:(id)sender {
    NSLog(@"sender: %@", sender);
}

Теперь вы знаете, какой элемент управления отправил сообщение.

Ответ 4

- (IBAction) myButtonAction: (id) отправитель {

    if ([sender tag] == 0) {
        // do something here
    }
    if ([sender tag] == 1) {
        // Do some think here
   }

}

//другими словами

- (IBAction) myButtonAction: (id) отправитель {

     NSLog(@"Button Tag is : %i",[sender tag]);

    switch ([sender tag]) {
    case 0:
        // Do some think here
        break;
    case 1:
       // Do some think here
         break;
   default:
       NSLog(@"Default Message here");
        break;

}