2

ストーリーボードに IntroViewController という名前のビュー コントローラーがあり、これを次のように別のビュー コントローラーに子として追加したいと考えています。

     IntroViewController *introViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"View1"];
     [introViewController.textLabel setText:@"test"];
     [self addChildViewController:introViewController];

IntroViewController で、ストーリーボードに textLabel という名前のラベルを付けました。プログラムを実行すると、動作してビュー コントローラーが表示されますが、テキストは変更されません。どうすればこれを修正できますか?

4

1 に答える 1

0

ストーリーボードからViewControllerをインスタンス化すると、実際に画面に表示されるまでビューは読み込まれません。あなたが投稿したコードの時点でintroViewController.textLabelはnilです。

IntroViewController実行できるオプションの1つは、クラスにプロパティを追加し、代わりに次のように設定することです。

introViewController.initialText = @"test";

次に、ラベルの内側-viewDidLoadIntroViewControllerインスタンス化されるため、電話をかけることができます。

[self.textLabel setText:self.initialText];

また、ほとんどの場合、他のView Controllerではなく、ViewControllerを所有するビューに値を設定することをお勧めします。

于 2013-02-28T18:52:55.620 に答える