使用NSNotificationCenter从另一个视图更新UILabel

时间:2012-09-02 00:19:32

标签: objective-c ios uilabel nsnotificationcenter

我正在使用NSNotification中心调用的方法在另一个视图中更新UILabel。

我发现它不起作用,标签保持不变,直到稍后重新加载视图(不使用nsnotification中心调用的方法)。

标签设置为非原子,保留并且我使用self将所有内容绑定到该属性。

显然,尝试更新标签的所有代码(方法)都位于相应的viewController中。该方法被调用(我可以看到NSLog),它所做的只是self.label2.text = @“label 2 updated”;

我能够使用计时器更新标签的文本值,所以我认为标签没有问题,而是我对线程和/或加载的内容有所了解在给定的时间。

您认为这是什么问题?

PS:我会选择一个答案,即使它对我没那么帮助,所以请发表你最疯狂的猜测!

1 个答案:

答案 0 :(得分:1)

首先确保在设置文字时标签不是nil

如果不是nil,请在设置文本后尝试在标签上调用setNeedsLayout(这不是必需的)。另外,请使用以下命令验证您是否在主线程上:

[NSThread isMainThread]

如果这没有帮助,请使用UILabel的子类,覆盖setText并在其上放置断点以查看正在发生的事情。