美文网首页
Swift4.0 - 代理协议的使用和创建

Swift4.0 - 代理协议的使用和创建

作者: 等不来的期待 | 来源:发表于2018-12-21 18:05 被阅读19次

    写项目是我们免不了要使用代理、通知、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)
            
        }
        
    
    

    相关文章

      网友评论

          本文标题:Swift4.0 - 代理协议的使用和创建

          本文链接:https://www.haomeiwen.com/subject/mwsvkqtx.html