直接監(jiān)聽
- Swift中可以直接拿到別的類的成員變量來監(jiān)聽
messageView.registorButton.addTarget(self, action: #selector(registorClick), forControlEvents: UIControlEvents.TouchUpInside)
@objc private func registorClick(button: UIButton)
{
}
代理
import UIKit
protocol MessageVisitorViewDelegate: NSObjectProtocol
{
// 默認(rèn)情況下協(xié)議中的方法都是必須實(shí)現(xiàn)的
func messageVisitorViewDidClickRegistorButton(messageVisitorView: MessageVisitorView)
func messageVisitorViewDidClickLoginButton(messageVisitorView: MessageVisitorView)
}
// 代理可以有,也可以沒有,所以是可續(xù)
weak var delegate: MessageVisitorViewDelegate?
@IBAction func registorClick(sender: AnyObject) {
// 因?yàn)閰f(xié)議方法都是必須實(shí)現(xiàn),因此這里不需要判斷代理是否實(shí)現(xiàn)了方法
delegate?.messageVisitorViewDidClickRegistorButton(self)
}
@IBAction func loginClick(sender: AnyObject) {
delegate?.messageVisitorViewDidClickLoginButton(self)
}
// 設(shè)置代理
messageView.delegate = self
// Swift中一般另外開辟一塊代碼塊來寫代理方法
extension MessageController: MessageVisitorViewDelegate
{
func messageVisitorViewDidClickLoginButton(messageVisitorView: MessageVisitorView) {
}
func messageVisitorViewDidClickRegistorButton(messageVisitorView: MessageVisitorView) {
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。