8

所以我有一个 UITableView,并且单元格连接到一个 UIStoryboardSegue 以打开一个新的 UIViewController。单击一个单元格后,prepareForSegue会调用并且一切正常。

问题:在以下方法中,我如何知道 TableView 中所选单元格的 indexPath 是什么?

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    ObjectDetailViewController *mvc = [segue destinationViewController];
    // PassingObject *obj = [self.array objectAtIndex: ? ];
    mvc.passingObject = obj;
}
4

2 回答 2

18
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Assume self.view is the table view
    NSIndexPath *path = [self.tableView indexPathForSelectedRow];
    DetailObject *detail = [self detailForIndexPath:path];
    [segue.destinationViewController setDetail:detail];
}
于 2012-02-21T02:42:36.370 回答
6

您可以使用 [self.tableView indexPathForCell:sender] 而不是 [self.tableView indexPathForSelectedRow](查看 DJPlayer 答案),因为在这种情况下,发送者是一个选定的单元格。

于 2012-10-02T13:51:36.080 回答