委托代理
1.定义个协议
2.声明一个委托代理
3.指定委托代理,调用委托实现的协议方法
4实现LoadingDelegate协议
代码如下:
import UIKit //1.定义个协议 protocol loadingDeleagte { func didLoading(text: String) } class HomeViewController: UIViewController { @IBOutlet weak var textFlied: UITextField! //2.声明一个委托代理 var delegate: loadingDeleagte? override func viewDidLoad() { super.viewDidLoad() } @IBAction func backBtnClick(_ sender: AnyObject) { print("点击了") //3实例一个 ViewController类 let loading = ViewController() //指定委托代理是 loading 的实例 delegate = loading //调用委托实现的协议方法 delegate?.didLoading(text: textFlied.text!) } override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { UIApplication.shared.keyWindow?.endEditing(true) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
import UIKit class ViewController: UIViewController { @IBOutlet weak var textLable: UILabel! @IBOutlet weak var NextBtn: UIButton! override func viewDidLoad() { super.viewDidLoad() } } //4实现LoadingDelegate协议 extension ViewController : loadingDeleagte { func didLoading(text: String) { print(text) //值已经传过来了 } }