我正在使用 NSNotification 中心调用的方法更新另一个 View 中的 UILabel。
我发现它不起作用,标签保持不变,直到稍后重新加载 View (不使用 nsnotification center 调用的方法)。
标签设置为非原子、保留,我使用 self 将所有内容绑定(bind)到该属性。
显然,尝试更新标签的所有代码(方法)都位于相应的 viewController 中。该方法被调用(我可以通过 NSLog 看到),它所做的就是 self.label2.text = @"label 2 Updated";
我可以使用计时器很好地更新标签的文本值,所以我认为标签没有问题,而是我对线程和/或加载或未加载内容的理解有问题在给定的时间。
您认为问题出在哪里?
PS:我会选择一个答案,即使它对我没有多大帮助,所以请发表你最疯狂的猜测!
最佳答案
首先确保设置文本时标签不为 nil
。
如果不是nil
,请尝试在设置文本后在标签上调用setNeedsLayout
(这不是必需的)。另外,验证您是否位于主线程上:
[NSThread isMainThread]
如果这没有帮助,请使用 UILabel
的子类,重写 setText
并在其上放置断点以查看发生了什么。
关于objective-c - 使用 NSNotificationCenter 从另一个 View 更新 UILabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12232450/