0

Core Data のすべてのエンティティのリスト ビューがあります。

タップすると、選択したエンティティの値が、ナビゲーション スタックにプッシュされようとしているビューのテキスト フィールドにプッシュされるはずですが、そうではありません。

私を混乱させイライラさせているのは、 を使用するNSLogとログに記録されますが、同じコードを使用しても同じ情報が に出力されないことtextFieldsです。タイトルも必要に応じて変更され、テキストフィールドが変更されない理由がわかりません。何か不足していますか?Athlete エンティティへのアクセスが間違っていますか?

ここに私のコードスニペットがあります(コアデータ属性を動的に作成し、詳細ビューがプッシュされていることに注意しAthlete.hてくださいAllAthletes.htable viewAthleteDetail.h

allathletes.h

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    Athlete *athlete = (Athlete *)[athleteArray objectAtIndex:indexPath.row];
    AthleteDetail *athleteDetail= [self.storyboard instantiateViewControllerWithIdentifier:@"showAthlete"];
    athleteDetail.firstDetailTextField.text = athlete.first;
    athleteDetail.title = athlete.full;
    NSLog(@"Full Name: %@",athlete.full);
    NSLog(@"Parent's Full Name: %@", athlete.pfull);
    NSLog(@"Number: %@",athlete.phone);
    NSString *firstNameText = athleteDetail.firstDetailTextField.text;
    firstNameText = [NSString stringWithFormat:@"%@",athlete.first];
    [self.navigationController pushViewController:athleteDetail animated:YES];
    }
4

1 に答える 1

2

AthleteDetail のオブジェクトを作成すると、サブビューAthleteDetail *athleteDetail= [self.storyboard instantiateViewControllerWithIdentifier:@"showAthlete"];されたコントロールが初期化されません。

望ましい動作を得る最善の方法は、AthleteDetail クラスに「athleteName」という名前のプロパティを作成することです。

@property(nonatomic, strong) NSString * athleteName

athleteDetail.firstDetailTextField.text = athlete.first; 次のコードを書く代わりに

athleteDetail.athleteName = athlete.first;

AthleteDetail クラスの viewDidLoad で、athleteName をテキストフィールドに割り当てます。

firstDetailTextField.text = _athleteName;

これがうまくいくことを願っています.. :)

于 2013-08-05T11:54:28.367 に答える