iPhone заполнить значения для UIPickerView - PullRequest
0 голосов
/ 18 февраля 2011

Я создал UIPickerView, который отображается при нажатии кнопки. Вопрос в том, как я заполняю ряд элементов

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Select Location"
                                                             delegate:self
                                                    cancelButtonTitle:@"Cancel"
                                               destructiveButtonTitle:nil
                                                    otherButtonTitles:nil];

    [actionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent];
    UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0,100,0,0)];
    pickerView.showsSelectionIndicator = YES;
    pickerView.dataSource = self;
    pickerView.delegate = self;
    [actionSheet addSubview:pickerView];
    [pickerView release];
    UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:NSLocalizedString(@"Done", @"")]];
    closeButton.momentary = YES;
    closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f);
    closeButton.segmentedControlStyle = UISegmentedControlStyleBar;
    closeButton.tintColor = [UIColor blackColor];
    [closeButton addTarget:self action:@selector(dismissActionSheet:) forControlEvents:UIControlEventValueChanged];
    [actionSheet addSubview:closeButton];   
    [closeButton release];
    [actionSheet showInView:self.view];
    [actionSheet setBounds:CGRectMake(0, 0, 320, 485)];

и Как получить значение при нажатии кнопки «Готово».

1 Ответ

1 голос
/ 18 февраля 2011

вы установили делегат оповещения и сборщик уже. Теперь вы должны их реализовать. Вы не заполняете данные для сборщика, сборщик запрашивает данные у вашего делегата.

Вам нужны обязательные функции, определенные в этих трех протоколах.

UIPickerViewDelegate
UIPickerViewDataSource
UIActionSheetDelegate

Вы должны также реализовать -(IBAction)dismissActionSheet:(UIButton *)sender.

и Как получить значение, когда нажата кнопка «Готово».

Я бы сохранял значение в переменной экземпляра каждый раз, когда меняется сборщик, и после нажатия кнопки «Готово» я назначал его для моей модели данных.


Редактировать: Если вы хотите что-то узнать, я бы избавился от решения для копирования и вставки и попытался бы реализовать его самостоятельно. Но YMMV.

...