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

时间:2016-02-24 00:42:31

标签: ios objective-c uipickerview

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

这是我的用例:

  1. 对服务器进行的API调用
  2. 用户点击按钮以显示选择器视图。
  3. 显示Picker View并显示文本LOADING ...
  4. API调用返回。我打电话给[self.seasonEpiPickerView reloadAllComponents];
  5. 什么都没发生。基本上,由于选择器视图已经加载并显示在屏幕上,因此它不会更新其数据。如何更新已经显示的选择器视图的数据?

2 个答案:

答案 0 :(得分:0)

你需要

在.h文件中

@interface ViewController : UIViewController
<UIPickerViewDataSource,UIPickerViewDelegate>

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

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

这可以帮到你

答案 1 :(得分:0)

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