vipul vankadiya
vipul vankadiya

Reputation: 35

iPhone: Multiple UIPickerViews

I use a multiple UIPickerView in iPhone application. My question is, how can I handle multiple UIPickerView Handle Events?

Also, I want to place the selected value In UITextField of different UIPickerViews.

Upvotes: 3

Views: 2836

Answers (2)

Ahmad Kayyali
Ahmad Kayyali

Reputation: 8243

In each delegate you have reference of the UIPickerView which got triggered the delegate. for instance:

-(void)numberOfComponentInPickerView:(UIPickerView*)thePickerView

You have thePickerView variable which points to the control responded to this action, all you need to do now is to distinguish between your UIPickerViews as the following:

 if (thePickerView == firstPickerView)

Or Using The Tag property

 if (thePickerView.tag == 1)

I would go with the tag solution; comparing int is way faster.

How do I get the selected value:

As for the selected value of UIPickerView you can do that by using the delegate:

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

You will need to use the same technique here; distinguish between your UIPickerView and get the selected row for that data source and you are done

 MyTextField.text = [theSelectedListArray objectAtIndex:row];

Upvotes: 11

AppStore
AppStore

Reputation: 53

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    NSInteger counter;
    if(pickerView==p1)
    {
        counter=[name count];
    }
    else
    {
        counter=[name2 count];
    }
    return counter;

}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    if(pickerView==p1)
        return [name objectAtIndex:row];//name is NsMutable Array
    else
        return [name2 objectAtIndex:row];//name2 is NsMutable Array

}

Upvotes: 1

Related Questions