iphone - UIPickerView 不更新

标签 iphone ios uipickerview

我正在从 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/

相关文章:

iphone - 最佳高分框架 - iPhone

iphone - 有没有办法弄清楚动画期间 View 当前旋转了多少度?

ios - WatchConnectivity 通过在 iPhone 上启动计时器来发送 watch 消息

ios - 如何在具有多个组件的 UIPickerView 中为特定组件添加图像?

iphone - 如何禁用 Tableview 单元格上的 iOS 嵌入斜角效果

iphone - 试图划分UIBezierPath

ios - tmp目录下的文件删除后仍然占用空间ios

ios - 还押资源 - 预计时间(以及如何根据下载进度显示提醒)

iphone - 在选取器 View 中未选择第一个值

ios - 带有点击识别器的 UIPickerView 失败