-2

アスリートを一覧表示するテーブル ビューがあります。アスリートが選択されたら、詳細ビュー コントローラー (スタックにプッシュされるコントローラー) にアスリートに関するすべての属性を認識させたいと考えています。彼/彼女の名前、誕生日、電話番号などですが、この情報を渡す方法がわかりません。

allathletes.h

-(void)viewWillAppear:(BOOL)animated{
    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    _managedObjectContext = [appDelegate managedObjectContext];

    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    NSEntityDescription *athlete = [NSEntityDescription entityForName:@"Athlete" inManagedObjectContext:_managedObjectContext];
    [request setEntity:athlete];
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"last" ascending:YES];
    NSArray *sortDescriptors = [[NSArray alloc]initWithObjects:sortDescriptor, nil];
    [request setSortDescriptors:sortDescriptors];

    NSError *error = nil;
    NSMutableArray *mutableFetchResults = [[_managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
    if (mutableFetchResults == nil){
        //handle error
    }
    [self setAthleteArray:mutableFetchResults];
    [self.tableView reloadData];
}


-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    NSString *segueIdentifier = [segue identifier];
    if ([segueIdentifier isEqualToString:@"setAthlete"])
    {
        UINavigationController *navController = (UINavigationController *)[segue destinationViewController];
        AllAthletes *athleteList = (AllAthletes *)[[navController viewControllers] lastObject];
        //the line below gets an error :(
        AthleteDetail.managedObjectContext = self.managedObjectContext;
    }
}
4

2 に答える 2

0

詳細View Controllerをプッシュする前に、次のように、表示するデータでプロパティを設定します。

myDetailViewController.myModel = selectedModel;

詳細ビューでは、viewWillAppear でこのデータを使用してビューを設定できます。

于 2013-08-04T23:31:29.793 に答える