2013-03-19 73 views
0

我正在使用兩個UIPickerView。首先,我需要在另一個選擇器視圖中更改值。根據另一個選取器值更改選取器值

任何想法如何做到這一點?

注意:我正在使用CCPickerView

+0

請簡明扼要我不明白。 – 2013-03-19 11:23:59

+0

與UIPickerView不同,您使用的代表titleForRow和didSelectRow? – 2013-03-19 11:24:05

+0

你可以在從First UIPicker視圖中選擇數據後重新加載數據 – Impossible 2013-03-19 11:24:52

回答

2

我已經在我的項目做了同樣的事情,這裏是解決方案..

- (NSInteger)numberOfItemsInPickerView:(CPPickerView *)pickerView 
{ 
    if (pickerView.tag == 110) 
    { 
     return [picker_1_ary count]; 
    } 
    else 
    { 
     return [picker_2_ary count]; 
    } 
} 

- (NSString *)pickerView:(CPPickerView *)pickerView titleForItem:(NSInteger)item 
{ 
    if (thePickerView.tag == 110) 
     return [picker_1_ary objectAtIndex:item]; 
    else 
     return [picker_2_ary objectAtIndex:item]; 
} 


- (void)pickerView:(CPPickerView *)pickerView didSelectItem:(NSInteger)item 
{ 
    if (pickerView.tag == 110) 
    { 
     [picker_2 reloadAllComponents]; 
    } 
    else 
    { 
     NSString *value = [[NSString alloc] initWithFormat:@"%@" , [picker_2_ary objectAtIndex:item]]; 
     NSLog(@"Selected value ::: %@", value); 
    } 
} 

希望它有幫助,謝謝..

+0

謝謝,我會去看看 – 2013-03-19 11:58:39

+0

我得到的錯誤爲'[CPPickerView reloadAllComponents]:無法識別的選擇器發送到實例0x8a202e0',然後得到BAD_ACCESS – 2013-03-19 12:07:58

+0

'reloadData'做了詭計...謝謝你... – 2013-03-19 12:09:05

2

更新這是用來填充這個方法裏面的第二選擇器的陣列

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
    { 
     if(pickerView == picker1) 
     { 
     // Update the array 
     pickerValuesArray2 = ...; 
     } 

    } 
+0

我正在使用CCPickerView,我沒有這個方法, – 2013-03-19 11:35:09

+0

這個代表怎麼樣? - (void)pickerView:(CPPickerView *)pickerView didSelectItem: (NSInteger) { } – Xcoder 2013-03-19 11:39:22

+0

另外不要忘記通過[picker2 reloadAllComponents]重新加載2 picker; – Xcoder 2013-03-19 11:44:42