我找到的每个示例都向我展示了如何填充UIPickerView
中的viewDidLoad
。但是,当我尝试使用另一个函数中的HTTP请求中的项目填充选择器时,它最终变为空白(即使我已经测试过数据确实按照我的意愿返回)。
- (IBAction)btnClick:(id)sender
{
NSDictionary *courseNames;
if(![_txtBox.text isEqual:@""]) //if not empty
{
courseNames = [self retrieveCourseNamesForSemester:_txtBox.text];
for (NSString *key in courseNames)
{
NSString *val = [NSString stringWithFormat:@"%@ - %@",key,[courseNames objectForKey:key]];
_txtView.text = val;
[courseArray addObject:val];
}
}
_coursePicker.hidden=false;
[_txtBox resignFirstResponder];
}
_coursePicker
是在故事板本身上创建的,因此不会以编程方式或任何方式添加。我要添加到courseArray
方法中分配的数组UIPickerView
,如下所示:
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
//set number of rows
return courseArray.count;
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return [courseArray objectAtIndex:row];
}
此时如何重新填充UIPickerView
?
答案 0 :(得分:2)
获取数据后_coursePicker.hidden = NO;
尝试调用
[_coursePicker reloadAllComponents];
这应该使选择器重新填充您的数据。