Thông thường, bạn sẽ thấy mục tiêu và hành động cùng một lúc.
Mục tiêu và hành động được sử dụng để chỉ một phương pháp cụ thể. Trong đoạn mã của bạn, bạn đang tạo một UIBarButtonItem
. Các UIBarButtonItem
cần phải biết những gì phương pháp nó nên gọi khi nó được khai thác.
Làm cách nào để bạn biết phương thức nào cần gọi?
"Chỉ cần vượt qua tham khảo phương pháp" bạn có thể nói:
let rightButton = UIBarButtonItem(
title: "Done", style: .done, methodToCall: self.myMethod)
Thật không may, điều này chỉ hoạt động trong nhanh chóng. UIBarBUttonItem
là C API mục tiêu nên không thể sử dụng phương pháp này.
Trong mục tiêu C, Selector
s đại diện cho các phương pháp, nhưng chúng không lưu trữ đối tượng nào để gọi phương thức. Đó là lý do tại sao chúng tôi cần thêm thông số target
. Nó chỉ định đối tượng nào nên gọi phương thức. Mặt khác, action
chỉ định phương thức cần gọi.
Ở đây, chúng tôi muốn gọi self.myMethod
. Đối tượng mà phương thức được gọi là self
và phương thức được gọi là myMethod
. Tuyệt quá! Bây giờ hãy vượt qua chúng!
let rightButton = UIBarButtonItem(
title: "Done", style: .done, target: self, action: #selector(myMethod))
tại sao lại bị bỏ phiếu? bạn có thể cho tôi biết .. xin vui lòng. tôi mới đến nhanh chóng –