简体   繁体   English

添加到UIPickerView

[英]Adding to a UIPickerView

Every example I find shows me how to populate a UIPickerView in viewDidLoad . 我发现的每个示例都向我展示了如何在viewDidLoad填充UIPickerView However, when I try to populate the picker with items from an HTTP Request in another function, it ends up being blank (even though I've tested that the data actually does come back as I want it). 但是,当我尝试用另一个函数中的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 is created on the storyboard itself, so it's not added programmatically or anything. _coursePicker是在情节_coursePicker创建的,因此不会以编程方式或任何方式添加。 I'm adding to the array courseArray , which is assigned in the UIPickerView methods, as follows: 我将添加到数组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];
}

How do I repopulate the UIPickerView at this point? 此时如何重新填充UIPickerView

After you get your data and before _coursePicker.hidden = NO; 在获取数据之后,在_coursePicker.hidden = NO;之前_coursePicker.hidden = NO; try calling 尝试打电话

[_coursePicker reloadAllComponents];

That should make the picker repopulate with your data. 那应该使选择器重新填充您的数据。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM