4

appDelegate から ViewControllers の 1 つのラベルを更新したいと思います。View Controller の Label はすべて IB でリンクされ、プロパティが設定されています。

AppDelegate .h で

ビュー コントローラーの ivar を作成しているので、このようにデリゲートからビュー コントローラーのラベルにアクセスできます。

someViewController *myView;

および AppDelegate.m ファイルで

myView.theLabel.text = @"Whatever";

私も試してみましたmyView.theLabel setText: @"whatever";

また、myView をプロパティにして合成してみました。applicationDidFinishLaunchingコードを試してみましたapplicationWillEnterForegroundが、ラベルが更新されません。これを行う最良の方法は何ですか?

4

1 に答える 1

3

myView はまだ作成されていないので、null 参照があると思います。

その理論をテストするためにこれを試してください:

someViewController *myView;
if(myView)
    NSLog(@"Object has been created");
else
    NSLog(@"You have a null reference - The Object hasn't been created yet");

この場合、行を次のように変更して作成します。

someViewController *myView = [[someViewController alloc] initWithNibName:@"SomeViewController" bundle:nil];
myView.theLabel.text = @"Something";
self.window.rootViewController = myView;

はい、appDelegate で最初のビューを作成し、rootViewController をその最初のビューに設定します。

于 2012-06-29T15:09:41.087 に答える