Как получить метку кликаемого UIButton без IB? - PullRequest
0 голосов
/ 29 ноября 2010

Может ли кто-нибудь сказать мне, как получить тег UIButton, когда я нажимаю на него ...

Я сделал 5 кнопок с тегами 1,2,3,4 и 5 соответственно (всевызывая тот же метод getTag)

и я попробовал следующие способы для этого метода

- Methgod-1

- (void) getTag {// Iзнать, что это никогда не будет работать}

- Methgod-2

- (void) getTag: (id) sender {// Невозможно получить доступ к свойству sender.tag}

- Methgod-3

- (void) getTag: (UIButton *) sender {// Сбои программы}

Я не использую IBпожалуйста помогите .....

Ответы [ 3 ]

2 голосов
/ 29 ноября 2010

Оба метода-2 и -3 могут быть правильными - в методе 2 вам нужно только явным образом привести отправителя к UIButton, например:

-(void)getTag:(id)sender{ 
    UIButton *btn = (UIButton*)sender;
    switch (btn.tag){
     ...
    } 
}

Возможная причина, по которой метод 1 работает, а 2 и 3 - неверенселектор, который вы назначаете на действие вашей кнопки.Для метода 1 это должно быть

@selector(getTag)

Для второго

@selector(getTag:); // NOte ':' in selector which denotes that method gets 1 parameter
1 голос
/ 29 ноября 2010

Используйте метод 2 и код следующим образом,

UIButton *button = (UIButton *)sender;



button.tag;
0 голосов
/ 29 ноября 2010
UIButton * myB = [[UIButton alloc]init];

myB.tag = 2;

NSLog(@"TAG=%i",myB.tag);

//OUTPUT: 'TAG=2'
...