因此,在我的 Storyboard文件中,我有一个从一个 UITableViewController 到另一个 UITableViewController 的转场,这样当用户点击单元格时,它会打开下一个表格。没什么特别的。但是,当他们点击单元格时,我需要指定要加载到下一个 View 中的数据。我在 didSelectRowAtIndexPath 中执行此操作。根据indexPath.row,我设置了分配给prepareForSegue 函数中的详细 TableView 的变量值。我将 View Controller 作为变量加载到 let detailViewController = segue.destinationViewController as DetailTableViewController
中。从这里使用赋值函数设置数据。但是,当我点击表格时,数据不会显示,直到我按返回并再次点击它。基本上,数据是在segue之后分配的...我如何分配数据并在之后执行segue?
编辑
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
switch indexPath.row {
case 0:
self.passedInfo = self.infoOne;
break
case 1:
self.passedInfo = self.infoTwo;
break
case 2:
self.passedInfo = self.infoThree;
break
default:
break;
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
let detailViewController = segue.destinationViewController as DetailTableViewController
let destinationTitle = "Detail View"
detailViewController.title = destinationTitle
self.passedScores.sort{$0 > $1};
detailViewController.setData(self.passedInfo);
}
最佳答案
在显示 Controller 之前,您应该使用 prepareForSegue
函数将数据传递到目标 View Controller 。这是一篇关于如何在 Swift 中执行此操作的精彩文章:http://www.raywenderlich.com/forums/viewtopic.php?f=11&t=18471
关于ios - 详细 View UITableView - 在 segue 之前传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27538985/