我正在从 iOS 5.1.1 下的 URL 动态加载 UIPIcker View 的标签值,因此我需要在 View 呈现后更新它。如果我在实例化选择器时用值初始化它(通过委托(delegate)方法),那么一切都会正常工作。如果我稍后在选择器上调用 reloadAllComponents
,它确实会通过 delegate
方法查询数据源,并检索所选行,表明它确实已填充与新的值(value)观。问题是字段仍然显示为空白。选择器数据源、委托(delegate)
和IBOutlet
均设置为文件所有者(我使用的是.xib
)。如果我在实例化时将初始虚拟值加载到选择器中,即使在实际更新选择器之后也会显示这些值。我正在为这个摸不着头脑。谁能解释为什么GUI值不更新?
谢谢,
悬崖
[更新]
现在,我看到如果我在更新选择器后将应用程序后台化,它会重新显示正确的值]。真的感觉就像我失去了联系。我尝试调用 setNeedsDisplay
但没有成功。
最佳答案
我遗漏了代码,因为我有太多应用程序代码,我不愿意共享。我实际上已经弄清楚了问题所在。我通过 NSNotification 回调填充选择器。这显然没有在主线程中运行并导致了问题。通过确保通知回调的主体通过
在主线程中运行dispatch_async(dispatch_get_main_queue(), ^{
MY CODE HERE
});
现在一切正常。 悬崖
关于iphone - UIPickerView 不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11617133/