/ / Как се получават таговете на много UIButtons, но със същия избор на действие - iphone, objective-c, ios

Как се получават таговете на много UIButtons, но със същия избор на действие - iphone, objective-c, ios

Имам метод, който показва 10 (или повече) UIButtons. Тук има код за това как показах тези бутони ..

-(void)showButtons{
for(int i = 0; i < 10; i++){
UIButton *button = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
button.frame = CGRectMake(x, y, 100, 94);  //Assume x and y have values
**button.tag = i + 1000;**
[button setBackgroundImage:[_cardImages objectAtIndex:i]
forState:UIControlStateNormal];
[button addTarget:self action:@selector(myMethod:)
forControlEvents:UIControlEventTouchUpInside];
[self.view add subview:button];
[button release];

} }

-(IBAction)myMethod:(id)sender{
// I would like to print here button.tag, but I always get an error

}

Отговори:

3 за отговор № 1

Трябва да въведете изпращача тук, защото документ за самоличност типовете нямат свободен край Имот.
Новият код ще бъде


-(IBAction)myMethod:(id)sender{
UIButton *pressedButton = (UIButton *)sender;
NSLog(@"Tag of button pressed:%d",pressedButton.tag);
}


0 за отговор № 2

Резултатът ще бъде получен чрез отпечатване на стойността на sender.tag вместо бутона button.tag

-(IBAction)myMethod:(id)sender{
NSLog(@"%d",sender.tag);
}

0 за отговор № 3

Опитайте да осъществите достъп до UIVutton UIView и след това достъпа до него собственост TAG. Така че модифицирайки кода на Амреш Кумар:

-(IBAction)myMethod {
UIButton *pressedButton = (UIButton *)sender;
NSLog(@"Tag of button pressed:%d",pressedButton.view.tag);
}

0 за отговор № 4

Дефинирането на myMethod трябва да е така

Използвам същия начин, за да получа етикет на подателя.

-(IBAction)myMethod:(id)sender
{
NSLog(@"%d",[sender tag]);
}

Не е необходим кастинг, може да получите маркер на подателя, не е въпрос на типа данни на него.