繁体   English   中英

当第二个视图控制器发送数据时,Prepare for Segue是否工作

[英]does Prepare For Segue work when data send by second view controller

几天前,当我正在学习如何将数据从一个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接收数据时,我也使用了与在Web上看到的几乎相同的代码

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "segue2" {
            let secondVC = segue.destination as! secondViewController
            secondVC.delegate = self
        }
    } 

所以,任何人都可以快速地解释它为何看起来相同或有什么不同

要将数据从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)
}

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM