swift 代理闭包逆向传值

2,155 阅读1分钟

代理传值

首选注册协议,接下来使用属性设置代理,第三个添加代理的方法(第二个界面)

protocol loginViewDelegate {
    func didDelegateText(text:String)
}

var delegate : loginViewDelegate?


delegate?.didDelegateText(text: "helloworld")

在第一个界面添加代理之后就可以使用方法

func didDelegateText(text: String) {
        print("这里是我获取到的数据信息\(text)")
    }

闭包传值

第二个界面完成block的声明、持有、引用、最终使用block方法

// 声明

    typealias textBlock = (String) -> ()
// 持有

    var block :textBlock?
// 引用

    if let block = self.block {
        block(normalModel.tag_name)
    }

// 使用block方法
    func getBlock(block:textBlock?) {
        self.block = block
    }
home.getBlock { (value) in
            print("这里是我返回的数据信息\(value)")
        }