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

Ios 通过发件人将indexPath.row从DidSelectRowatineXpath发送到prepareForSegue,ios,swift,uitableview,segue,sender,Ios,Swift,Uitableview,Segue,Sender,我已经看到了很多解决方案,但是我不能正确地做到这一点。我想在点击单元格时从didSelectRowAtIndexPath函数调用PrepareForsgue。然后,我想从prepareForSegue函数内部检索被点击的行索引,以便使用它将信息传递给另一个视图。我想我调用的函数是正确的,但是我的prepareForSegue函数出现了一些问题。我知道这是一个简单的解决办法,我只是被卡住了。这是我目前的密码 override func tableView(tableView: UITableVie

我已经看到了很多解决方案,但是我不能正确地做到这一点。我想在点击单元格时从didSelectRowAtIndexPath函数调用PrepareForsgue。然后,我想从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
    }

}

什么不起作用?这行怎么错了?selectedIndex总是被当前代码设置为nil,假设我有一个名为results的本地数组来存储我的信息。如果我尝试使用results[selectedIndex]访问它,我会收到一个错误,说我不能使用NSIndex作为数组的索引。因此,我注意到在扫过一行或单击编辑按钮后,
indexPathForSelectedRow
开始返回空值。你能解释一下为什么会这样吗。但是,你的解决方案非常好。