0

ストーリーボードを使用して設定した 2 つのビュー コントローラー間でデータを渡す単純なプロジェクトを作成しようとしています。

プロジェクトは非常に単純です。最初のページにテキスト フィールドがあり、ボタンを押すと、ユーザーは 2 番目のビュー コントローラーに移動し、そこでテキストが表示されることを期待していますが、まだ運がありません。

セグエに「モーダル」スタイルを使用しています。コードは次のとおりです。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

ViewController2 *vc2;

vc2 = [segue destinationViewController];

vc2.label.text = textField.text;    

}

誰かが正しいコードを手伝ってくれて、現在持っているものが機能しない理由を説明してくれたらありがたいです。私は周りを検索しましたが、これを行う方法にはいくつかのバリエーションがあるようですが、これは私にはほとんど正しいようです.

約 2 週間前にコンソールから iOS に移行したばかりなので、シンプルにしておいてください。

前もって感謝します!

4

2 に答える 2

2

あなたの問題(おそらく!)は、destinationViewControllerあなたがそれを更新しようとしている時点で、まだそのビュー階層をロードしていないということです。これは次の方法で確認できます。

NSLog(@"Label: %@", vc2.label);

ViewController2これを回避する方法は、単なる文字列であるプロパティを作成し、代わりにそれを設定することです。次に、でviewDidLoad:実行するときにViewController2、文字列プロパティをラベルのテキストにコピーします。

于 2012-08-20T20:08:29.457 に答える
2

私はそれが醜いことを知っていますが、destinationviewcontroller をキャストしてみてください。私はそれを試してみましたが、このような状況で役立つようです。

ViewController2 *vc2 = (ViewController * ) [セグエ先ビューコントローラー];

また、ストーリーボードを使用している場合、uinavigationcontroller を使用していますか?

于 2012-10-31T21:11:42.430 に答える