2012-08-13 17 views
13

Anyoone może mi pomóc, jak dodać akcję, aby wywołać następującą metodę, używając UIButton.Dodaj miejsce docelowe dla UIButton - iOS

-(void)navigatePics:(id)sender andIndex:(NSInteger *)index{} 
+0

Proszę wyjaśnić, jaki rodzaj funkcjonalności chcesz. Czy chcesz, aby ktoś napisał między {}, aby metoda zrobiła coś? Czy potrzebujesz pomocy przy podłączeniu go do Interface Builder (IB)? – MrHappyAsthma

+0

Po prostu szukam [button addTarget: self action: @selector (_this space____) forControlEvents: UIControlEventTouchUpInside]; –

Odpowiedz

50

pomocą button.setTag: Metoda (NSInteger) dodać wskaźnik do UIButton jako znacznik.

UIButton *button = ...; 
[button setTag:1234]; 
[button addTarget:self action:@selector(navigatePics:) forControlEvents:UIControlEventTouchUpInside]; 

Następnie w navigatePics, przeczytaj tag.

-(void)navigatePics:(UIButton *)sender 
{ 
int index = sender.tag; 
// index = 1234; 
} 
0

To powinno wystarczyć. Nie używaj self, jeśli chcesz wywołać tę metodę w innej instancji. W takim przypadku wystarczy użyć tej instancji zamiast jaźni.

[button addTarget:self action:@selector(navigatePics:andIndex:) forControlEvents:UIControlEventTouchUpInside]; 
+0

Jak mogę przekazać wartość indeksu? –

+0

nie można przekazać wartości indeksu ... pobrać od nadawcy –

2
UIButton *button = [[UIButton alloc] init]; 
button.tag = 4; //index 
[button addTarget:self @selected(buttonDidTap:)]; 

... 
[button release]; 

-(void)buttonDidTap:(UIButton *)sender{ 
NSInteger index = sender.tag; 
} 
Powiązane problemy