如果视图已经显示,则用新数据更新 PickerView

Update PickerView with new data if the view is already being shown

我正在从服务器获取数据以显示在选择器视图中。如果 API 没有返回,我会在选择器视图中显示 Loading...

这是我的用例:

  1. API 调用服务器
  2. 用户单击按钮以显示选择器视图。
  3. 显示选择器视图并显示文本正在加载...
  4. API 调用 returns。我打电话给 [self.seasonEpiPickerView reloadAllComponents];

没有任何反应。基本上,由于选择器视图已经加载并显示在屏幕上,因此它不会更新其数据。如何更新已显示的选择器视图的数据?

你需要

在.h文件中

@interface ViewController : UIViewController
<UIPickerViewDataSource,UIPickerViewDelegate>

在 .m 文件中 设置委托和数据源

yourpicker.delegate = self;
yourpicker.datasource = self;

这对你有帮助吗

解决了:我的服务器响应不在主线程上。我已经放置了一个测试线程来延迟 UI 更新以进行测试。我删除了测试代码并从主线程执行了 updateUI 行,一切都与上面的代码相同。