大家好,谢谢你。我试图在视图重新前移到前景时通过代码更改ViewController上UILabel的文本属性。我在AppDelegate.m文件中使用“applicationDidBecomeActive”来调用ViewController.m上的方法,这是有效的。问题是,我调用的方法或“ViewDidLoad”方法都不会在设置应用程序更改设置后更新UIlabel.text。文本保持不变,就像它从上次更新发送字符串一样。我每次从设置包中获取一个NSUserDefault值以包含在文本字符串中。获取返回OK。 UILabel只是不会更新。只是FYI我在调用“viewDidLoad”的自我视图之前调用同步。为什么我的UILabel.text无法更新?
为了澄清,当“viewDidLoad”方法在首次启动时运行时,它工作正常。只有在点击主页按钮后,更改设置应用程序中的设置,然后返回到我的应用程序,UILabel lblResultTitle.text现在不会更新。 请请帮助...
这里是在viewDidLoad中的代码:
-(void) viewDidLoad
{
NSUserDefaults *settings = [NSUserDefaults standardDefaults];
self.lblResultTitle.text = [NSString stringWithFormat:@"Speed %@ =", [settings stringForKey:kunit]] ;
[super viewDidLoad];
}
我的猜测是'self.lblResultTitle'是零或没有连接任何东西。先检查一下。另外,如果您想要经常更新标签(即不仅仅是在第一次加载时),请不要将该标签更新代码放在'viewDidLoad'中!把它放在别的地方(在一个新的函数中)并让'viewDidLoad'调用这个新函数。 – 2012-04-18 04:53:10
感谢您的及时响应迈克尔。在屏幕上显示视图后,我可以从任何方法成功更新它。所以我相信这个连接是好的。 Xcode在IBOutlet上显示一个实心圆。我将尝试从下面的“ViewDidLoad”调用一个方法。 – 2012-04-18 04:58:52
好的,我添加了一个新的方法,从“viewDidLoad”调用,并将代码移到新的方法。同样的结果,它第一次工作,但不会在随后的... – 2012-04-18 05:04:57