这个问题已被多次回答。但是我能找到的答案对我来说不起作用,因为我似乎无法打电话给小组的班级。
进一步解释:
我有一个带有UITable的viewController。单元格在UITableViewCell类中配置。 (这是我需要提取的信息)
我的“细胞类”被称为mySuggestionsCel
这是我的“didSelectRowAtIndexPath”
的代码func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.allowsSelection = false
var selectedCell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!
var VC = detaiLSuggestion_VC()
self.navigationController?.pushViewController(VC, animated: true)
if selectedCell.backgroundColor == UIColor.formulaFormColor() {
selectedCell.backgroundColor = UIColor.formulaMediumBlue()
UIView.animateWithDuration(0.5, animations: {
selectedCell.backgroundColor = UIColor.formulaFormColor()
})
} else {
selectedCell.backgroundColor = UIColor.formulaGreenColor()
UIView.animateWithDuration(0.5, animations: {
selectedCell.backgroundColor = UIColor.formulaLightGreenColor()
})
}
}
我试过
mySuggestionsCell.someVariable
我也尝试过selectedCell.someVariable
既没有奏效。
我需要从我的cell Class中的detailSuggestion_VC()中获取此信息。但它需要提取的数据是被选中的特定单元格所具有的数据。这就是为什么我在使用它时遇到一些麻烦。
我环顾了一会儿。但是找不到任何问题或答案。
非常感谢任何帮助
答案 0 :(得分:4)
我做了以下假设:
您有一个详细信息视图控制器,当您点按一个单元格时,您的表格将被分割。
您要做的是传递已敲击的单元格的信息,以便您的新视图控制器具有所有单元格的信息。
而不是:
var selectedCell: UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!
您需要在tableViewCell类中进行类型转换。像这样:
var selectedCell = tableView.cellForRowAtIndexPath(indexPath)! as tableViewCell
接下来需要做的是调用以下函数:
performSegueWithIdentifier(/*Segue Identifier goes here*/, sender: selectedCell)
进行此调用会将selectedCell的内容传递给发件人,可在prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject)
确保在类中的某处覆盖prepareForSegue。
现在,在prepareForSegue:中,您可以获取对destinationViewController的引用,并初始化将保存selectedCell变量的destinationViewController中的实例变量。
//in prepareForSegue
let controller = segue.destinationViewController as detailSuggestion_VC
controller.cellInfo = sender