2014-03-29 74 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]; 

這應該使機械手與您的數據重新填充。

相關問題