2012-03-12 2 views
1

В моей программе есть 5 кнопок. Различные действия будут выполняться в зависимости от выбора кнопки. Тем не менее, я просто назначаю одну кнопку IBAction для всех кнопок. Есть ли какой-либо метод, который может помочь мне определить, какую кнопку выбирают пользователи внутри одного IBAction? Спасибо огромное!Как получить действие с помощью кнопки?

+0

Не знаете xcode, но есть ли какие-либо поля id для кнопки? –

+0

Вы идентифицируете элементы в своем интерфейсе, объявив их в своем файле заголовка ... IBOutlet UIButton * myButton1; Затем вы можете связать эти объявления с вашим интерфейсом, чтобы Xcode знал, какие элементы интерфейса вы говорите в своем коде. –

ответ

1

Предполагая, что ваши кнопки имеют свои

@property (strong, nonatomic) UIButton *menuButton; 

Вы можете изменить функцию следующим образом:

- (IBAction)actionButtons:(UIButton*)sender { 
    if ([sender isEqual:menuButton]) { 
     NSLog(@"Menu Pressed"); 
    } 
} 

Таким образом, вы можете использовать тег для чего-то еще (я использую их для обозначения того, на какой стадии я отношусь к интерфейсу, например)

PD: Возможно, вы захотите, чтобы ваша кнопка была слабой, и я получил их как сильные по причине.

1

sender будет вызывающим объектом.

- (IBAction)theActionDone:(id)sender; 

Если у вас есть много кнопок, призывающих theActionDone: выше, sender кнопка вызова (либо ячейка или кнопку управления, либо так, как вы можете работать ваш путь оттуда).

3

Назначьте каждой из кнопок уникальную недвижимость tag. Затем проверьте это в методе IBAction:

- (IBAction)theActionDone:(id)sender 
{ 
    UIButton *button = (UIButton *)sender; 

    switch (button.tag) 
    { 
     case 1: 
     { 
      //do stuff for button one 
      break; 
     } 

     ... 
    } 
} 
Смежные вопросы