Swift3.0 代理

来源:互联网 发布:便携设备数据恢复软件 编辑:程序博客网 时间:2024/06/11 11:32

代理 –> 逆向传值

SecondViewController代码快

import UIKitprotocol SecondViewControllerDelegate  {    func showInfo(_ str : String) -> Void}// 类名后不能写SecondViewControllerDelegateclass SecondViewController: UIViewController {     var delegateSecond: SecondViewControllerDelegate!    override func viewDidLoad() {        super.viewDidLoad()        self.view.backgroundColor = UIColor.white        let btn = UIButton()        btn.setTitle("返回", for: .normal)        btn.frame = CGRect(x: 100, y: 100, width: 100, height: 100)        btn.backgroundColor = UIColor.purple        btn.addTarget(self, action: #selector(backBtnClick), for: .touchUpInside)        self.view.addSubview(btn)    }    func backBtnClick() {        delegateSecond?.showInfo("second controller delegete")        self.navigationController?.popViewController(animated: true)    }}

FirstViewController代码块

import UIKitclass FirstViewController: UIViewController, SecondViewControllerDelegate {// 遵循SecondViewControllerDelegate    override func viewDidLoad() {        super.viewDidLoad()        self.view.backgroundColor = UIColor.white        let btn = UIButton()        btn.setTitle("跳转", for: .normal)        btn.frame = CGRect(x: 100, y: 100, width: 100, height: 100)        btn.backgroundColor = UIColor.purple        btn.addTarget(self, action: #selector(pushBtnClick), for: .touchUpInside)        self.view.addSubview(btn)    }    func pushBtnClick() {        let secondVC = SecondViewController()        secondVC.delegateSecond = self // 指定代理        self.navigationController?.pushViewController(secondVC, animated: true)    }    func showInfo(_ str: String) {  // 实现代理方法        print(str,".....")    }}

好了,简单的代理实现

原创粉丝点击