通过发件人将 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
}
}
我见过很多解决方案,但我做不到。我想在点击单元格时从 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
}
}