4

我想从 appDelegate 更新我的一个 ViewController 中的标签。视图控制器中的标签都在 IB 中链接并设置了属性。

在 AppDelegate .h

我正在为视图控制器创建一个 ivar,因此我可以像这样从委托访问视图控制器上的标签。

someViewController *myView;

并在 AppDelegate.m 文件中

myView.theLabel.text = @"Whatever";

我也试过myView.theLabel setText: @"whatever";

我还尝试将 myView 设为属性并将其合成。我已经尝试过代码applicationDidFinishLaunchingapplicationWillEnterForeground但是标签永远不会更新。最好的方法是什么?

4

1 回答 1

3

我想 myView 还没有创建,所以你有一个空引用。

试试这个来测试这个理论:

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 回答