写项目是我们免不了要使用代理、通知、block来进行传值或者其他操作,此篇仅仅介绍代理的使用方法,思想是和OC的一样的。
协议的声明
//声明协议
@objc protocol LoginViewDelegate {
//协议方法
func loginViewNextButtonPhone(phone: String)
}
创建协议的属性
weak var delegate: LoginViewDelegate?
协议的使用
//声明协议
if let delegate = self.delegate {
delegate.loginViewNextButtonPhone(phone: self.phoneField.text!)
}
协议的调用
import UIKit
class LoginViewController: BaseViewController, LoginViewDelegate {
lazy var loginView: LoginView = {
let loginView = LoginView.init(frame: CGRect.init(x: 0, y: 0, width: AppFrame.ScreenWidth, height: AppFrame.ScreenHeight))
//遵循代理
loginView.delegate = self
return loginView
}()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.title = "登录/注册";
self.view.backgroundColor = UIColor.white;
self.view.addSubview(self.loginView)
}
//MARK: - LoginViewDelegate
func loginViewNextButtonPhone(phone: String) {
BJDLog(phone)
}
网友评论