代理是一种设计模式,在iOS中使用协议的方式来实现代理,常见的场景就是回调。实现代理其实很简单,只需要遵循以下6个步骤即可:
其中1,2,3在B控制器中完成,4,5,6在A控制器中完成
//1.声明协议
public protocol BackSendValueDelegate : NSObjectProtocol {
func backSendValue(value: NSString?) -> Void
}
//2.创建代理对象
weak open var delegate: BackSendValueDelegate?
//3.调用代理方法
if self.delegate != nil {
self.delegate!.backSendValue(value: textField.text as NSString?)
}
//4.设置代理对象
bVC.delegate = self
//5.遵循协议
class AViewController: UIViewController, BackSendValueDelegate
//6.实现代理方法
func backSendValue(value: NSString?) {
print("value:\(value)")
self.label?.text = value as String?
}