我想从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]; } }
答案 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;
}
}
}