gpt4 book ai didi

ios - 如何使用闭包在两个 ViewController 之间传递数据

转载 作者:行者123 更新时间:2023-11-28 09:35:45 25 4
gpt4 key购买 nike

我想知道如何使用闭包传递数据。我知道存在三种类型的数据传递方法:

  • 代表

  • 通知中心

  • 关闭

我想用一个例子来正确说明闭包。

最佳答案

使用 block /闭包很好地传递数据是一种很好且合理的方法,并且比通知要好得多。下面是相同的代码。

第一个 ViewController(在其中创建第二个 ViewController 的对象)

 @IBAction func push(sender: UIButton) {
let v2Obj = storyboard?.instantiateViewControllerWithIdentifier("v2ViewController") as! v2ViewController

v2Obj.completionBlock = {[weak self] dataReturned in
//Data is returned **Do anything with it **
print(dataReturned)
}
navigationController?.pushViewController(v2Obj, animated: true)

}

第二个 ViewController(数据传回第一个 VC)

import UIKit
typealias v2CB = (infoToReturn :String) ->()
class v2ViewController: UIViewController {
var completionBlock:v2CB?
override func viewDidLoad() {
super.viewDidLoad()
}

func returnFirstValue(sender: UIButton) {
guard let cb = completionBlock else {return}
cb(infoToReturn: "any value")
}

}

关于ios - 如何使用闭包在两个 ViewController 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44540818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com