为什么这个Swift prepareForSegue函数覆盖有实例化?

时间:2015-02-28 02:23:53

标签: ios oop swift override segue

我正在学习Swift,我正在努力将项目从一个segue传递到另一个。从代码中我看来,您正在创建一个名为“secondVC”的新ViewController对象。在第3行中,我觉得它通过将此新控制器设置为等于segue.destinationViewController来复制segue.destinationViewController。换句话说,我不明白secondVC实际上是如何引用第二个视图控制器,而不是一个重复的实例。我的思维在哪里?这是代码:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
 var secondVC:SecondViewController = SecondViewController()
 secondVC = segue.destinationViewController as SecondViewController
 secondVC.delegate = self
}

非常感谢!

1 个答案:

答案 0 :(得分:0)

我也在迅速学习 - 根据我自己的经验,你使用prepareForSegue在segue开始之前将数据传递给secondVC。

这是一些示例代码。我使用prepareForSegue将任务数据传递到第二个视图控制器。还有其他方法可以做到这一点,这只是一种方式。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "showTaskDetail" {
        let detailVC: TaskDetailViewController = segue.destinationViewController as TaskDetailViewController
        let indexPath = self.tableView.indexPathForSelectedRow()
        let thisTask = fetchedResultsController.objectAtIndexPath(indexPath!) as TaskModel
        detailVC.detailTaskModel = thisTask
        detailVC.delegate = self
    }