swift5以上版本的代理的实现,详细教你书写代理
swift 代理与OC代理同等重要。非常重要,必须要学好,搞懂
什么是代理,就是自己的事情不去做,让别人去做。交给别人去做
我这里有个view.swift继承自UIView,我view里面使用纯代码创建2个button,现在点击按钮,让XXXTableController.swift 文件去执行我代理方法的,即view的事件传递到Controller里面,
首先点击view.swift文件,要声明代理,代理的具体方法不要实现,相当于java的接口,interface,只定义函数,不实现函数。
1.
//第1步. 定义协议
//访客视图的协议
protocol VisitorViewDelegate: NSObjectProtocol {
//注册
func visitorViewDidRegister() //只定义,不实现
//登录
func visitorViewDidLogin() //只定义,不实现
}
协议的定义格式非常严谨,
2.在类中去声明代理的变量
class VisitorView: UIView {
// 第2步.声明 代理变量
var delegate: VisitorViewDelegate?
}
3.通知代理
//第3步: 写监听方法,直接让代理去工作了,通知协议去干事
@objc private func clickLogin(){
delegate?.visit