Adding to a UIPickerView



我找到的每个示例都向我展示了如何在viewDidLoad中填充UIPickerView。但是,当我尝试在另一个函数中使用来自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在这一点上?

获取数据后,_coursePicker.hidden = NO;之前尝试调用

[_coursePicker reloadAllComponents];

这将使选择器重新填充您的数据。

最新更新