4

テキストフィールドのユーザー名フィールドを更新しようとしています。現在、「ユーザー名」が書かれたプレースホルダーがあります。設定ファイルからユーザー名を読み込んでいますが、わかりやすくするためにユーザー名をハードコーディングします。

- (void)viewDidLoad {
    settings=[Settings new];
    [settings loadData];

    //username.text=settings.username;
    username.text=@"Test";
}

何らかの理由でこれは機能しません!!! ただし、クリックするとテキストフィールドが更新されるボタンがある場合。

例えば

- (IBAction)login:(id)sender{
    username.text=@"test";
}

したがって、ボタンはテキストを更新しますが、viewDidLoad から更新することはできません。これはスレッドの問題ですか?こんなに単純なことにこんなに時間がかかるなんて信じられない。

4

3 に答える 3

9

この時点では、コントロールはおそらく作成されていません。

ViewControllerで- (void)viewDidAppear:(BOOL)animatedに値を設定してみてください。

- (void)viewWillAppear:(BOOL)animatedも試してみてください。

于 2009-09-02T11:20:49.757 に答える
3

理由はわかりませんが、最初に表示された後にのみテキストフィールドのテキストを変更できます

=> 使用- (void)viewDidAppear:(BOOL)animated

これはうまくいきます

于 2009-09-02T11:35:49.303 に答える
0

プロパティ内でテキスト フィールドを IBOutlet として宣言しました。私が犯した間違いは、Interface Builder でアウトレット (テキスト フィールド) をファイルの所有者に接続するのを忘れたことです。

于 2010-09-21T15:40:35.500 に答える