8

したがって、UITableViewがあり、新しいUIViewControllerを開くために、セルがUIStoryboardSegueに接続されています。セルをクリックすると、 prepareForSeguegetが呼び出され、すべてが正常に機能します。

質問:次の方法で、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 indexPathForSelectedRow](DJPlayerの回答を参照)の代わりに[self.tableView indexPathForCell:sender]を使用できます。

于 2012-10-02T13:51:36.080 に答える