unwind segue 将数据传递给不同的视图控制器

unwind segue pass data to different viewcontrollers

我有一个有 4 种不同形式的应用程序。这些表格可以通过单击不同的问题并被引导至包含选项的 viewcontroller 来完成。让我们称之为 OptionViewController。现在我有 4 种不同的形式和不同的选项,但都使用 OptionViewController 从数据库中提取数据,我需要展开 segue 并传递数据。

因为它可能来自 4 个不同的视图控制器,我需要确保信息正确传递,即确定目标viewcontroller unwindsegue 是否正在执行第一个、第二个、第三或第四 viewcontroller.

我想我可能会做这样的事情

        override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    // Get the new view controller using segue.destinationViewController.
    // Pass the selected object to the new view controller.

    if segue.identifier == "optionSelected" {

        if segue.destinationViewController == FirstViewController {

             //pass data

        } else if segue.destinationViewController == SecondViewController {
             //pass data
        }

    }
}

但显然我无法执行segue.destinationViewController == FirstViewController

我实际上应该做什么?或者我应该为每个表单创建一个 OptionViewController,这将解决我的问题,但我不确定应用程序的整体性能是否会因视图控制器的增加而下降

提前感谢您的帮助

要测试目标视图控制器是否属于特定 class,请使用 Swift 关键字 is:

if segue.destinationViewController is FirstViewController {

或者,您可以使用可选绑定可选强制转换将viewController分配给变量:

if let dvc = segue.destinationViewController as? FirstViewController {
    // dvc will have type FirstViewController so you can access specific
    // properties of FirstViewController using dvc
}