2012-08-13 21 views
13

Anyoone kann mir helfen, wie Sie eine Aktion hinzufügen, um die folgende Methode mit UIButton aufzurufen.Ziel für UIButton hinzufügen - iOS

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

Bitte erläutern Sie, welche Art von Funktionen, die Sie wollen. Möchtest du, dass jemand zwischen die {} 's schreibt, damit die Methode etwas tut? Oder benötigen Sie Hilfe beim Anschluss an den Interface Builder (IB)? – MrHappyAsthma

+0

Ich suche nur nach dem [button addTarget: self action: @selector (_this space____) forControlEvents: UIControlEventTouchUpInside]; –

Antwort

50

Verwenden der button.setTag: (NSInteger) Methode, den Index zu dem UIButton als Tag hinzuzufügen.

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

Dann lesen Sie in navigatePics das Tag.

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

Dies sollte den Trick tun. Verwenden Sie nicht self, wenn Sie diese Methode für eine andere Instanz aufrufen möchten. In diesem Fall verwende einfach diese Instanz anstelle von self.

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

Wie würde ich den Indexwert übergeben? –

+0

Sie können den Indexwert nicht übergeben ... erhalten Sie es vom Absender –

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; 
} 
Verwandte Themen