我想在UITableViewController
之间传递图片和其他数据(它有自定义UITableViewCell)
。进入函数prepareForSegue
我做了以下,但它不起作用。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "identifierDetail" {
if let index = self.tableView.indexPathForSelectedRow() {
let controller = (segue.destinationViewController as? UINavigationController)?.topViewController as? DetailViewController
let cellIndentifier: String = "NewsCell"
var cell: ParseTableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIndentifier) as? ParseTableViewCell
controller?.image = cell?.imageViewCell.image
}
}
}
答案 0 :(得分:2)
您正在调用dequeueReusableCellWithIdentifier
这会为您提供一个新单元格,如果您想访问该单元格中的值,您需要访问相关单元格的数据源,如下面的代码所示:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "identifierDetail" {
if let index = self.tableView.indexPathForSelectedRow() {
let controller = (segue.destinationViewController as? UINavigationController)?.topViewController as? DetailViewController
let selectedData = dataSource[selectedIndexPath.row] //here dataSource is here the data to populate your table come from
controller?.image = cell?.imageViewCell.image
}
}
}
答案 1 :(得分:0)
这个
var cell: ParseTableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIndentifier) as? ParseTableViewCell
正在获得一个新的'单元格(或者它可能正在重用现有单元格),而不是从您的tableview中获取所选单元格。
您不应该使用单元格作为数据模型的替代方案 - 它们只是数据的视图。检索到所选单元格的indexPath后,只需索引到数组或其他数据模型,即可检索分配给cellForRowAtIndexPath