Swift中代理的使用方法
一,在视图界面
1.制定协议
protocol VistorLoginViewDelegate:NSObjectProtocol {
//设置协议方法
func visitorViewRegisterViewSelected()
}
//在swift中,制定协议需要遵守NSObjectProtocol协议,除了类可以遵守协议,结构体也可以遵守协议
//在OC中我们制定协议,通常继承自NSObject,可以这样理解,所有继承自NSObject的对象都可以实现协议方法(同样我们也可以指定哪些对象可以实现我们制定的协议方法)
2.用weak定义代理
weak var delegate:VistorLoginViewDelegate?
3.判断代理是否存在,让代理去执行方法
func clickButton() {
//'?'代替了responsed
delegate?.visitorViewRegisterViewSelected()
}
二,在控制器界面
1.遵守协议
class ViewController: UIViewController,VistorLoginViewDelegate { //遵守协议
2.设置代理为self
visitorLoginView?.delegate = self
3.实现协议方法
func visitorViewLoginDidSelected() {
print(#function)
}