2012-08-13 26 views
13

Bất kỳ ai cũng có thể giúp tôi cách thêm hành động để gọi phương thức sau bằng cách sử dụng UIButton.Thêm mục tiêu cho UIButton - iOS

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

Vui lòng giải thích loại chức năng bạn muốn. Bạn có muốn ai đó viết giữa {} 's để làm cho phương pháp làm điều gì đó không? Hay bạn cần trợ giúp để gắn nó lên Bộ dựng giao diện (IB)? – MrHappyAsthma

+0

Tôi chỉ tìm kiếm [button addTarget: self action: @selector (_this space____) forControlEvents: UIControlEventTouchUpInside]; –

Trả lời

50

Sử dụng phương pháp button.setTag: (NSInteger) để thêm chỉ mục vào UIButton làm thẻ.

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

Sau đó, trong navigationPics, hãy đọc thẻ.

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

Điều này cần thực hiện thủ thuật. Không sử dụng self nếu bạn muốn gọi phương thức này trên một instance khác. Trong trường hợp đó, chỉ cần sử dụng trường hợp đó thay cho bản thân.

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

Tôi sẽ chuyển giá trị chỉ mục như thế nào? –

+0

bạn không thể chuyển giá trị chỉ mục ... lấy nó từ người gửi –

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; 
} 
Các vấn đề liên quan