2010-05-31 21 views
7

Cho đến nay, tôi đã sử dụngLàm cách nào để thay thế hành động hiện tại của một (?) UIButton?

[button1 addTarget:self action:@selector(newAction) forControlEvents:UIControlEventTouchUpInside]; 

mà thêm một hành động bổ sung (tôi nghĩ). Làm cách nào để thay thế hành động ban đầu bằng hành động mới?

+0

Tôi nghĩ rằng UIButton có thể chấp nhận được, có. –

+0

nó âm thanh tốt hơn rất nhiều – androidnotgenius

+0

Để loại bỏ tất cả các hành động trước đó: '' '[button1 removeTarget: nil hành động: NULL forControlEvents: UIControlEventAllEvents]' '' - xem http://stackoverflow.com/questions/3340825/uibutton-remove-all -target-actions –

Trả lời

13

Trước tiên, bạn sẽ cần tham chiếu đến nút1 của mình. Sau đó, bạn cần phải hủy đăng ký mục tiêu bằng cách gọi hành động sau:

[button1 removeTarget:self action:@selector(oldAction) forControlEvents:UIControlEventTouchUpInside] 

Bạn có thể bỏ qua không làm tác vụ, thao tác này sẽ xóa tất cả các hành động được kết nối với mục tiêu đó khỏi nút.

Sau đó, bạn cần phải gọi

[button1 addTarget:self action:@selector(newAction) forControlEvents: UIControlEventTouchUpInside]; 

Đó là khá nó!

Hy vọng điều này là hữu ích, Pawel

3

Trước tiên, bạn phải loại bỏ các hành động hiện tại với removeTarget: hành động: forControlEvents: và sau đó thêm một mới với addTarget: hành động: forControlEvents :.

Các vấn đề liên quan