Имам метод, който показва 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]);
}
Не е необходим кастинг, може да получите маркер на подателя, не е въпрос на типа данни на него.