2012-06-22 72 views
3

我想从appDelegate更新其中一个ViewController中的标签。视图控制器中的标签全部在IB中链接并具有属性设置。从appDelegate更新另一个视图控制器中的标签

在AppDelegate中.H

我创建的视图控制器伊娃这样我就可以在视图控制器从这样的委托访问的标签。

someViewController *myView; 

,并在AppDelegate.m文件

myView.theLabel.text = @"Whatever"; 

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

香港专业教育学院还试图使MyView的一个属性,它合成。我试过applicationDidFinishLaunchingapplicationWillEnterForeground中的代码,但标签永远不会更新。什么是最好的方法来做到这一点?

+0

您是否在您的应用程序委托中实例化控制器,或通过任何其他方式获取对此控制器实例的引用? – Alladinian

+0

@Alladinian在.h中提到我创建了一个ivar someViewController * myView并以这种方式访问​​标签。 someViewController.h头文件被添加到appDelegate.h和appDelegate.m中,但不知道你的意思。感谢回复。 –

+0

@Alladinian对不起我厚厚的不,我没有从appdelegate实例化视图控制器我应该做的标签上面我正在访问someViewController * myView = [[someViewController alloc] initWithNibName:@“someViewController”等等等等? –

回答

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设置为第一个视图。

相关问题