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

Xcode 为什么我的UILabel.text无法更新?,xcode,uilabel,nsuserdefaults,Xcode,Uilabel,Nsuserdefaults,大家好,先谢谢大家。我试图在视图返回前台时通过代码更改ViewController上UILabel的文本属性。我在AppDelegate.m文件中使用ApplicationIDBecMeactive调用ViewController.m上的方法,这是可行的。问题在于,在设置应用程序中更改设置后,我调用的方法或ViewDidLoad方法都不会更新UIlabel.text。文本保持不变,几乎就像它发送上次更新的字符串一样。每次我都从设置包中获取一个NSUserDefault值,以包含在文本字符串中。取

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

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

以下是ViewDidLoad中的代码:

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

  [super viewDidLoad];
}

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

我的猜测是self.lblResultTitle为零或与任何内容都没有关联。先检查一下。此外,如果您希望经常更新标签,即不仅仅是在第一次加载时更新,请不要将标签更新代码放入viewDidLoad!将它放在一个新函数的其他地方,并让viewDidLoad调用该新函数。感谢您的及时响应。在屏幕上显示视图后,我可以通过任何方法成功地更新它。所以我相信这种联系是好的。Xcode在IBOutlet上显示一个填充圆。接下来,我将尝试从ViewDidLoad调用一个方法。好的,我添加了一个从ViewDidLoad调用的新方法,并将代码向下移动到该新方法。同样的结果,它在第一次工作,但在随后的调用中不起作用…检查self.lblResultTitle在随后的调用中是否为nil;对于新方法,在另一个代码之前,它返回null。。。如果视图已明确启动并加载,为什么会出现这种情况?