iPhone: несколько UIPickerViews - PullRequest
3 голосов
/ 30 апреля 2011

Я использую несколько UIPickerView в приложении для iPhone.У меня вопрос, как я могу обработать несколько UIPickerView Обработать события?

Кроме того, я хочу поместить выбранное значение в UITextField различных UIPickerViews.

Ответы [ 2 ]

11 голосов
/ 30 апреля 2011

В каждом делегате есть ссылка на UIPickerView, который вызвал делегата.например:

- (void) numberOfComponentInPickerView: (UIPickerView *) thePickerView

У вас есть переменная thePickerView , которая указываетчтобы элемент управления ответил на это действие, все, что вам нужно сделать сейчас, это различить ваш UIPickerViews следующим образом:

 if (thePickerView == firstPickerView)

Или используя свойство тега

 if (thePickerView.tag == 1)

Я бы пошел с решением тегов;сравнение int намного быстрее.

Как получить выбранное значение:

Что касается выбранного значения UIPickerView, выможно сделать это с помощью делегата:

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

Вам нужно будет использовать ту же технику здесь;проведите различие между вашим UIPickerView и получите выбранную строку для этого источника данных, и все готово

 MyTextField.text = [theSelectedListArray objectAtIndex:row];
1 голос
/ 14 июня 2013
- (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

}
...