0

几天前,当我学习如何将数据从一个 VC 发送到另一个 VC 时,我是 ios 开发的新手,然后我使用了

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
        }
    } 

所以请任何人都可以快速解释为什么它看起来一样或有什么不同

4

1 回答 1

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)
}

希望这可以帮助!

于 2017-08-29T04:09:50.550 回答