为什么这个 Swift prepareForSegue 函数覆盖有实例化?
Why does this Swift prepareForSegue function override have instantiation?
我正在学习 Swift 并且我正在努力将项目从一个 segue 传递到另一个 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
}
非常感谢!
我也在学习 swift - 根据我自己的经验,您可以在 segue 开始之前使用 prepareForSegue 将数据传递给 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
}
我正在学习 Swift 并且我正在努力将项目从一个 segue 传递到另一个 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
}
非常感谢!
我也在学习 swift - 根据我自己的经验,您可以在 segue 开始之前使用 prepareForSegue 将数据传递给 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
}