为什么我的UILabel.text无法更新?

时间:2012-04-18 04:42:27

标签: xcode uilabel nsuserdefaults

大家好,并提前感谢你。我正在尝试通过代码在视图 恢复到前台 时更改ViewController上UILabel的text属性。我在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];
}

1 个答案:

答案 0 :(得分:0)

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