2013-03-19 75 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