prepareForSegue tableview单元格仅显示表格中的第一个值

时间:2013-12-01 01:24:06

标签: ios objective-c tableview cell

我想从TableView单元格传递数据,但在详细视图“SongdetailView”中,它只显示表格中的第一个值。

这是我的代码

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  if ([segue.identifier isEqualToString:@"SongDetails"]) {

    SongsDetailView *destViewController = segue.destinationViewController;
      NSIndexPath *indexPath = [self.utableView indexPathForCell:sender];;

      destViewController.recipeName =[ songid objectAtIndex:indexPath.row];
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用tag来识别选择的单元格,然后从模态对象中获取正确的单元格。

前:

tableView:cellForRowAtIndexPath:

中的

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath     *)indexPath {

    UITableViewCell *cell = (UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
    cell.tag = indexPath.row;
    ...

}
prepareForSegue:sender:

中的

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"SongDetails"]) {

        UITableViewCell *cell = (UITableViewCell*)sender;
        if (cell.tag < self.SongIds.count) {
            SongId *songId = (SongId*)self.SongIds[cell.tag];
            SongsDetailView *destViewController = segue.destinationViewController;
            destViewController.recipeName = songId;
        }
    }
}