我是ios开发的新手 几天前,当我学习如何将数据从一个VC发送到另一个VC然后我使用
override func prepare(for segue: UIStoryboardSegue, sender: self) {
if segue.identifire == "segue1" {
let data = segue.destinetion as! secondViewController
data.labelName = labelFirst.text
}
现在当从secondVC接收数据时,我也使用几乎相同的代码 正如我在网上看到的那样
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "segue2" {
let secondVC = segue.destination as! secondViewController
secondVC.delegate = self
}
}
所以任何人都可以快速解释为什么它看起来一样 或者有什么区别
答案 0 :(得分:0)
要将数据从secondVC发送回firstVC,请使用委托。基于您编写的“secondVC.delegate = self”这一行,您已经阅读了有关此内容的文章,可能只需要一些其他信息。
在secondVC中,将以下代码放在类范围之外。例如上面
class secondVC: UIViewController {}
放在那里的代码是
protocol secondVCDelegate {
func didFinishTask(returnData: String)
}
将以下行放在secondVC的类范围内
var delegate: secondVCDelegate?
然后在firstVC中通过向类添加secondVCDelegate来继承secondVC委托。 (例如:class firstVC: UIViewController, secondVCDelegate {}
)
然后将该功能添加到您的firstVC
func didFinishTask(returnData: String) {
//Do something here with returnData
print(returnData)
}
希望这有帮助!