如果视图已经显示,则用新数据更新 PickerView
Update PickerView with new data if the view is already being shown
我正在从服务器获取数据以显示在选择器视图中。如果 API 没有返回,我会在选择器视图中显示 Loading...
。
这是我的用例:
- API 调用服务器
- 用户单击按钮以显示选择器视图。
- 显示选择器视图并显示文本正在加载...
- API 调用 returns。我打电话给
[self.seasonEpiPickerView reloadAllComponents];
没有任何反应。基本上,由于选择器视图已经加载并显示在屏幕上,因此它不会更新其数据。如何更新已显示的选择器视图的数据?
你需要
在.h文件中
@interface ViewController : UIViewController
<UIPickerViewDataSource,UIPickerViewDelegate>
在 .m 文件中 设置委托和数据源
yourpicker.delegate = self;
yourpicker.datasource = self;
这对你有帮助吗
解决了:我的服务器响应不在主线程上。我已经放置了一个测试线程来延迟 UI 更新以进行测试。我删除了测试代码并从主线程执行了 updateUI 行,一切都与上面的代码相同。
我正在从服务器获取数据以显示在选择器视图中。如果 API 没有返回,我会在选择器视图中显示 Loading...
。
这是我的用例:
- API 调用服务器
- 用户单击按钮以显示选择器视图。
- 显示选择器视图并显示文本正在加载...
- API 调用 returns。我打电话给
[self.seasonEpiPickerView reloadAllComponents];
没有任何反应。基本上,由于选择器视图已经加载并显示在屏幕上,因此它不会更新其数据。如何更新已显示的选择器视图的数据?
你需要
在.h文件中
@interface ViewController : UIViewController
<UIPickerViewDataSource,UIPickerViewDelegate>
在 .m 文件中 设置委托和数据源
yourpicker.delegate = self;
yourpicker.datasource = self;
这对你有帮助吗
解决了:我的服务器响应不在主线程上。我已经放置了一个测试线程来延迟 UI 更新以进行测试。我删除了测试代码并从主线程执行了 updateUI 行,一切都与上面的代码相同。