1)基本上,数据正在通过ViewControllers,但是要迟到了。 当nextViewController执行代码时,传递了一些变量
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "goto") ...
尚未设定。仍然没有。
2)我的第二个问题与第一个问题有关:我试图从selectedCell传递数据,所以我在委托didSelectItemAtIndexPath
上分配一个全局变量。但当它达到prepareForSegue
时,我要传递的变量仍为零。
请帮忙吗?
答案 0 :(得分:1)
您应该使用segue或表视图委托。
在PrepareForSegue中获取选定的tableview单元格并访问相应的数据并传递到下一个DetailVC。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
//get the selected indexPath
let selectedIndex = self.tableView.indexPathForCell(sender as UITableViewCell)
var dataTobePassed = dataArray[selectedIndex.row]
destination.data = dataTobePassed
}
-OR -
如果两个ViewControllers之间存在segue,那么在tableview选择委托方法中,您可以设置segue。
func tableView(tableView:UITableView,didSelectRowAtIndexPath indexPath:NSIndexPath){ self.performSegueWithIdentifier(“showDetailVC”,sender:indexPath); }
然后在你的prepareForSegue方法
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "showDetailVC") {
let path = self.tableView.indexPathForSelectedRow()!
segue.destinationViewController.detail = self.detailForIndexPath(path)
}
}