我正在使用NSNotification中心调用的方法在另一个视图中更新UILabel。
我发现它不起作用,标签保持不变,直到稍后重新加载视图(不使用nsnotification中心调用的方法)。
标签设置为非原子,保留并且我使用self将所有内容绑定到该属性。
显然,尝试更新标签的所有代码(方法)都位于相应的viewController中。该方法被调用(我可以看到NSLog),它所做的只是self.label2.text = @“label 2 updated”;
我能够使用计时器更新标签的文本值,所以我认为标签没有问题,而是我对线程和/或加载的内容有所了解在给定的时间。
您认为这是什么问题?
PS:我会选择一个答案,即使它对我没那么帮助,所以请发表你最疯狂的猜测!
答案 0 :(得分:1)
首先确保在设置文字时标签不是nil
。
如果不是nil
,请在设置文本后尝试在标签上调用setNeedsLayout
(这不是必需的)。另外,请使用以下命令验证您是否在主线程上:
[NSThread isMainThread]
如果这没有帮助,请使用UILabel
的子类,覆盖setText
并在其上放置断点以查看正在发生的事情。