1

大家好,并提前感谢您。当视图返回到前台时,我试图通过代码更改 ViewController 上 UILabel 的文本属性。我在 AppDelegate.m 文件中使用“applicationDidBecomeActive”来调用 ViewController.m 上的方法,这是可行的。问题是我调用的方法或“ViewDidLoad”方法都不会在设置应用程序中的设置更改后更新 UIlabel.text。文本几乎保持不变,就好像它正在发送上次更新的字符串一样。我每次都从设置包中获取一个 NSUserDefault 值以包含在文本字符串中。提取返回 OK。UILabel 只是不会更新。仅供参考,我在触发“viewDidLoad”的本端视图之前调用同步。

澄清一下,当“viewDidLoad”方法在启动时第一次运行时,它工作正常。只有在点击主页按钮、更改设置应用程序中的设置然后返回我的应用程序后,UILabel lblResultTitle.text 现在才不会更新。请帮助...

这是 ViewDidLoad 中的代码:

-(void) viewDidLoad
{
  NSUserDefaults *settings = [NSUserDefaults standardDefaults];
  self.lblResultTitle.text = [NSString stringWithFormat:@"Speed %@ =", [settings stringForKey:kunit]] ;

  [super viewDidLoad];
}
4

1 回答 1

0

答案是这样的:调用从 AppWillEnterForeground 或 APPxBecomeActive 更新的方法将不起作用,因为应用程序的情节提要尚未执行。对于这种情况,应用程序必须侦听从 NSUserDefaults 发送的消息。在实现了必要的代码之后,我有了我需要的解决方案。问题实际上不是 UILabel。它比那更深。现在一切都好!谢谢!

于 2012-04-19T04:40:09.170 回答