选择器视图一个组件隐藏和其他组件取消隐藏

picker view one component hide and other component unhide

我在选择器视图中累了两个组件,即(货币),(id)并显示了但我的问题是如何在选择器视图中单独隐藏 "id" 组件。"currency" 在 responseArray 和 "id" 在 responseArray1.

选择器视图委托:

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;{
    return 2;

}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;{
        return [responseArray count];
    }

-(NSString*) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;{
    //return [responseArray objectAtIndex:row];
    if (component == 0) {
        return [responseArray objectAtIndex:row];
    } else {
        return [responseArray1 objectAtIndex:row];


    }
}

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;
{

    NSLog([responseArray1 objectAtIndex:row]);
    if (component == 0) {
        [pickerView selectRow:row inComponent:1 animated:YES ];
    } else if(component == 1)
    {
        if (row != [pickerView selectedRowInComponent:0])
        {
            [pickerView selectRow:[pickerView selectedRowInComponent:0] inComponent:1 animated:YES];
        }

    }
}

根据评论回答:

 -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;{
return 1;

}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return [responseArray count];
}

-(NSString*) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{


return [responseArray objectAtIndex:row];



}

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{

NSLog(@"rsponse currency : %@",[responseArray objectAtIndex:row]);
NSLog([responseArray1 objectAtIndex:row]);



// You can fetch value from both array using row parameter.
// You can display currency and id for particular row from here like above

}

您不需要在 pickerview 中显示两个组件。只显示一个你想显示的,根据选定的行,你可以从数组中获取相应的元素。

希望这会有所帮助:)