0

我有一个表格视图控制器,它显示fetchresults一个实体的所有内容。当 a 时row is selected,我希望该行将其信息传递给详细视图控制器。问题是在我开始stuck on how to only show the entity selected之前我得到了而不是全部。我认为我所拥有的didSelectAtIndexPath应该是在下一个视图控制器中更改文本字段的文本,但事实并非如此。我错过了什么吗?这是我到目前为止所拥有的。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    Athlete *athlete = (Athlete *)[athleteArray objectAtIndex:indexPath.row];
    AthleteDetail *athleteDetail= [self.storyboard instantiateViewControllerWithIdentifier:@"showAthlete"];
    athleteDetail.firstDetailTextField.text = athlete.first;
    [self.navigationController pushViewController:athleteDetail animated:YES];
}


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

            }
    }
4

1 回答 1

0

UITableView 有- (NSIndexPath *)indexPathForSelectedRow方法。使用它来获取所选行的索引。

你会有这样的:

 NSIndexPath *index = [self.yourTableView indexPathForSelectedRow];
 NSUInteger currentRow = [index row];
 YourDataObject * d = // take out data from your model using currentRow

 YourDetailViewController *vc = [segue destinationViewController];
 // pass your data to detailViewController
 [vc setData:d];
于 2013-08-05T10:24:43.823 回答