直接监听
messageView.registorButton.addTarget(self, action: #selector(registorClick), forControlEvents: UIControlEvents.TouchUpInside)
@objc private func registorClick(button: UIButton)
{
}
代理
import UIKit
protocol MessageVisitorViewDelegate: NSObjectProtocol
{
// 默认情况下协议中的方法都是必须实现的
func messageVisitorViewDidClickRegistorButton(messageVisitorView: MessageVisitorView)
func messageVisitorViewDidClickLoginButton(messageVisitorView: MessageVisitorView)
}
// 代理可以有,也可以没有,所以是可续
weak var delegate: MessageVisitorViewDelegate?
@IBAction func registorClick(sender: AnyObject) {
// 因为协议方法都是必须实现,因此这里不需要判断代理是否实现了方法
delegate?.messageVisitorViewDidClickRegistorButton(self)
}
@IBAction func loginClick(sender: AnyObject) {
delegate?.messageVisitorViewDidClickLoginButton(self)
}
// 设置代理
messageView.delegate = self
// Swift中一般另外开辟一块代码块来写代理方法
extension MessageController: MessageVisitorViewDelegate
{
func messageVisitorViewDidClickLoginButton(messageVisitorView: MessageVisitorView) {
}
func messageVisitorViewDidClickRegistorButton(messageVisitorView: MessageVisitorView) {
}
}
网友评论