如何在didSelectRow中使用2个组件检测UIPickerView的所有值?

时间:2012-09-02 14:26:20

标签: iphone ios xcode uipickerview

我是xcode的新手,我对我的第一个应用程序有疑问。 我在我的应用程序中有一个带有2个组件的UIPickerView,其中包含NSMutableArray。如果更改了第一个组件,则清除第二个组件阵列并填充新值。 现在我必须检测第一个组件中的选定行和第二个组件中的选定行,以在UIWebView中加载本地HTML页面。 我尝试使用if循环,但我不明白如何检测2个组件上的所有选定行。 这是我的源代码的一小部分:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
NSLog(@"the %d row was selected in the %d component", row, component);
if ((component == 0) && (row ==0)){
     [rightPickerArray removeAllObjects];
     [rightPickerArray addObject:@"5.0"];
     [rightPickerArray addObject:@"5.1"];
     [pickerView reloadAllComponents];
}
if ((component == 0) && (row ==1)){
    [rightPickerArray removeAllObjects];
    [rightPickerArray addObject:@"1"];
    [rightPickerArray addObject:@"2"];
    [pickerView reloadAllComponents];
}

if ((component ==1) && (row ==0)){
    NSString *fileString = [[NSBundle mainBundle] pathForResource:@"index" ofType: @"html"];

    NSString *newHTMLString = [[NSString alloc] initWithContentsOfFile: fileString encoding: NSASCIIStringEncoding error: NULL];

    NSURL *newURL = [[NSURL alloc] initFileURLWithPath: fileString];

    [myWebView loadHTMLString: newHTMLString baseURL: newURL];
}

1 个答案:

答案 0 :(得分:2)

UIPickerView有一个“selectedRowInComponent:”方法可以帮助解决这个问题。检查this