在 VC 之间快速传递数据
Posted
技术标签:
【中文标题】在 VC 之间快速传递数据【英文标题】:Swift pass data between VCs 【发布时间】:2014-07-05 15:19:36 【问题描述】:我是 Swift 新手,我想知道为什么我从 Obj-C 翻译的这段代码在这里不起作用。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
if segue.identifier == "scoreDetail"
let indexPath = self.tableView.indexPathForSelectedRow()
let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as NSManagedObject
let itemVC: ScoreVC = segue.destinationViewController as ScoreVC
itemVC.detailItem = object
这里是故事板。我有一个Show Replace
从单元格到UINavigatorController
我一点击UITableViewCell
就会收到这个错误
【问题讨论】:
【参考方案1】:这个问题与 Swift 无关。 destinationViewController 是导航控制器,而不是您的 ScoreVC,因此您翻译的代码也不应该工作(如果它具有相同的设置)。它应该是这样的,
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
if segue.identifier == "scoreDetail"
let indexPath = self.tableView.indexPathForSelectedRow()
let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as NSManagedObject
let nav : UINavigationController = segue.destinationViewController
let itemVC: ScoreVC = nav.topViewController as ScoreVC
itemVC.detailItem = object
【讨论】:
你说得对,我刚刚注意到这件事!非常感谢以上是关于在 VC 之间快速传递数据的主要内容,如果未能解决你的问题,请参考以下文章