快速获取另一个View Controller中选定单元格的数据(以编程方式)

时间:2015-03-15 05:03:50

标签: ios uitableview swift tableviewcell

这个问题已被多次回答。但是我能找到的答案对我来说不起作用,因为我似乎无法打电话给小组的班级。

进一步解释:

我有一个带有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()中获取此信息。但它需要提取的数据是被选中的特定单元格所具有的数据。这就是为什么我在使用它时遇到一些麻烦。

我环顾了一会儿。但是找不到任何问题或答案。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:4)

我做了以下假设:

  1. 您有一个控制表格单元格的tableViewCell类文件。
  2. 您有一个详细信息视图控制器,当您点按一个单元格时,您的表格将被分割。

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

  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