0

私のコードは次のようになります:

if (messageBox == nil) {
    messageBox = [[MessageBoxController alloc] initWithNibName:@"MessageBoxView" bundle:nil];
}
[messageBox.MessageLabel setText: someString];
[self presentModalViewController:messageBox animated:YES];

ただし、上記のロジックが初めて実行されると(そして、messageBoxは実際にはnilで開始されます)、新しいラベルテキスト(someString)は表示されません。ただし、このメソッドを実行すると、テキストは正しく表示されます(もちろん、最新の「someString」が表示されます。前回メソッドを呼び出したときのインスタンスではありません)。

ラベルテキストを設定した直後に[messageBox.viewsetNeedsDisplay]を試しましたが、それも役に立ちません。messageBox viewDidLoadメソッドでは、非同期の初期化があった場合や、何があった場合に備えて、[self.MessageLabel setText:self.MessageLabel.text]も設定しました。

このメソッドを初めて呼び出すと、新しいラベルテキストが表示されないのはなぜですか?

4

1 に答える 1

1

その理由はUILabel、その前に設定テキストにnotなります。loaded

if (messageBox == nil) {
    messageBox = [[MessageBoxController alloc] initWithNibName:@"MessageBoxView" bundle:nil];
}
[self presentModalViewController:messageBox animated:YES];
//make changes to UI after providing viewcontroller
[messageBox.MessageLabel setText: someString];
于 2012-11-01T06:09:59.913 に答える