Как я могу поставить конкретное действие, когда я выбираю любую строку UIPickerView? - PullRequest
1 голос
/ 09 февраля 2011

Я пишу код как

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

    int n=row+1;
    if(row == 0)
        return [NSString stringWithFormat:@"%d minute", n];
    return [NSString stringWithFormat:@"%d minutes", n];
}

Теперь я хочу запустить таймер, так как я выбираю любую строку, например, строка 5 имеет 5 минут, поэтому я хочу запустить таймер с 5 минутами, так что я долженсделать, Как я могу выбрать конкретную строку и нажать кнопку и таймер запускается для этого события?

1 Ответ

2 голосов
/ 09 февраля 2011

В будущем, если вы зайдете на Google и введете имя своего класса и «ссылку на класс», вы обычно можете найти нужную информацию на веб-сайте Apple.

Например, я просто зашел на Google и набрал «UIPickerView class reference» и попал сюда: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIPickerView_Class/Reference/UIPickerView.html.

На этом веб-сайте, если вы читаете описание, на нем написано: «Делегат должен принять протокол UIPickerViewDelegate», а если щелкнуть там, там написано: «1006 *».

Ответ на выбор строки -

pickerView:didSelectRow:inComponent:

Это метод делегата, который вам нужно реализовать, который будет вызываться, когда пользователь выбирает строку. Если вы нажмете на нее, она даст небольшое описание и тому подобное.

Если вы перейдете к описанию, тогда полный метод:

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

поэтому, когда пользователь выбирает строку, вызывается этот метод, и pickerView автоматически передается в метод.

Затем вы можете получить строку, которую выбрал пользователь. Если вы вернетесь на страницу со ссылкой на класс UIPickerView, вы увидите следующее:

Выбор строк в окне выбора

– selectRow:inComponent:animated:
– selectedRowInComponent:

Метод selectedRowInComponent: - это тот, который вам нужен. Таким образом, в методе делегата вы можете сделать что-то вроде этого:

int selectedRow = (int)[pickerView selectedRowInComponent:0];

:) Вот что я делаю, когда хочу найти ответы на подобные вопросы. :)


Edit:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    int selectedRow = (int)[pickerView selectedRowInComponent:0];
    NSLog(@"%i",selectedRow);
}
...