swift 获取另一个 ViewController 中选定单元格的数据(以编程方式)

swift getting data for selected cell in another ViewController (programatically)

这个问题已经回答了很多次了。但是我能在上面找到的答案对我不起作用,因为我似乎无法调用单元格的 class.

进一步说明:

我有一个带有 UITable 的 viewController。单元格在 UITableViewCell class 中配置。 (就是从这个class需要拉取资料的)

我的 "cell class" 被称为 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

都没用。

我需要从我的 detailSuggestion_VC(),从我的手机 Class 中获取此信息。但是它需要提取的数据是被选中的特定单元格所具有的数据。这就是为什么我在让它工作时遇到一些问题。

我环顾四周。但找不到任何关于此特定问题的问题或答案。

如有任何帮助,我们将不胜感激

我做出以下假设:

  1. 您有一个 tableViewCell class 文件来控制您的 table 单元格。
  2. 您有一个详细视图控制器,当您点击一个单元格时,您的 table 会转到该控制器。

  3. 您要做的是传递被点击的单元格的信息,以便您的新视图控制器拥有所有单元格的信息。

而不是这个: var selectedCell: UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!

您将需要对 tableViewCell class 进行类型转换。像这样:

var selectedCell = tableView.cellForRowAtIndexPath(indexPath)! as tableViewCell

接下来您需要做的是调用以下函数:

performSegueWithIdentifier(/*Segue Identifier goes here*/, sender: selectedCell)

进行此调用会将 selectedCell 的内容传递给 sender,可用于 prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject)

确保在 class 中的某处覆盖 prepareForSegue。

现在,在 prepareForSegue: 中,您可以获得对 destinationViewController 的引用,并初始化 destinationViewController 中的实例变量,该实例变量将保存您的 selectedCell 的变量。

//in prepareForSegue
let controller = segue.destinationViewController as detailSuggestion_VC
controller.cellInfo = sender