2014-03-29 76 views
1

我找到的每个示例都向我展示了如何在viewDidLoad中填充UIPickerView。但是,当我尝试在另一个函数中使用来自HTTP请求的项目填充选择器时,它最终变为空白(尽管我已经测试过数据实际上会按照我的需要返回)。添加到UIPickerView

- (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

'_coursePicker.hidden = NO //而不是false' –

回答

2

后你会得到你的数据和_coursePicker.hidden = NO;之前尝试调用

[_coursePicker reloadAllComponents]; 

这应该使机械手与您的数据重新填充。

相关问题