iphone-Идентифицирующий контейнер кнопки

У меня есть такой класс,

@interface event
{
NSString *name;
UIButton *button;
}

В моем контроллере представления у меня есть несколько объектов класса событий, и я добавил все кнопки этих объектов событий в класс контроллеров представления (self.view)

-(void) buttonPressed:(id) sender

Теперь я обрабатываю touchevent в моем контроллере представления, как указано выше, теперь как я могу определить объект события, к которому принадлежит нажатая кнопка (отправитель).

2 ответа

Решение

Вы можете просто сравнить свойство кнопки объекта события с параметром отправителя вашего метода действия. Предполагая, что ваши объекты событий являются просто переменными-членами вашего контроллера представления, ваш код buttonPressed может выглядеть примерно так:

- (void)buttonPressed:(id)sender {
    if (sender == event1.button) {
       NSLog(@"Button pressed for event1");
    }
    else if (sender == event2.button) {
       NSLog(@"Button pressed for event2");
    }
}

Очевидно, вам придется объявить кнопку как @property вашего объекта Event.

Вы должны добавить тег к вашим объектам, как:

myObject.tag = 1;

Затем в вашем методе buttonPressed сделайте что-то вроде

if(sender.tag == 1){
    //...doSomething
}
Другие вопросы по тегам