Как узнать или получить идентификатор отправителя - PullRequest
1 голос
/ 22 июля 2010

У меня есть следующий метод

-(IBAction)back:(id)sender {

}

и хотел бы иметь возможность узнать идентификатор отправителя.

например. если с этим методом связаны несколько кнопок, я хотел бы знать, какая кнопка была нажата.

Ответы [ 4 ]

6 голосов
/ 22 июля 2010

Просто используйте свойство тега, унаследованное от UIView, который является NSInteger, в операторе switch или используя условия if.

Свойство тега можно установить в вашем коде или через InterfaceBuilder.

3 голосов
/ 22 июля 2010

Если вы настроили IBOutlets для кнопок в вашем интерфейсе, то вы можете просто сравнить отправителя с ними.

То есть в вашем определении интерфейса, если у вас есть

...
  (IBOutlet) UIButton *button1;
  (IBOutlet) UIButton *button2;
...

и в вашей реализации у вас есть:

- (IBAction) buttonPressed: (id) sender
{
  if (sender == button1) {
    ....
  }
  else if (sender == button2) {
    ...
  }
}

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

-J

3 голосов
/ 22 июля 2010

[тег отправителя]

Я не знаю, что вы подразумеваете под "id" ("sender" - это id, фактически NSObject *), но вы можете использовать теги.Вы должны установить тег заранее в Интерфейсном Разработчике или программно.

0 голосов
/ 22 июля 2010

Установите для свойства tag каждой кнопки уникальное целое число (в IB или программно) и включите его в методе действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...