通过发件人将 indexPath.row 从 didselectRowAtIndexPath 发送到 prepareForSegue

Sending indexPath.row from didselectRowAtIndexPath to prepareForSegue via sender

我见过很多解决方案,但我做不到。我想在点击单元格时从 didSelectRowAtIndexPath 函数调用 prepareForSegue 。然后我想从 prepareForSegue 函数内部检索被点击的行索引,这样我就可以使用它来将信息传递给另一个视图。我认为我正确地调用了该函数,但是我的 prepareForSegue 函数出了点问题。我知道这是一个简单的解决方案,我只是很困惑。这是我当前的代码

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    performSegueWithIdentifier("notificationsToAnswers", sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    //the below line is incorrect and should be something else
    let selectedIndex = tableView.indexPathForSelectedRow?.row
    //pass data on using the index
}

你应该这样通过:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    performSegueWithIdentifier("notificationsToAnswers", sender: indexPath)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "notificationsToAnswers" {
        //the below line is incorrect and should be something else
       let selectedIndexPath = sender as! NSIndexPath
       let index = selectedIndexPath.row
       //pass data on using the index
    }

}