2010-09-10 3 views
0

У меня есть приложение для iPhone, использующее UIPickerView и 3 кнопки.Динамический выбор строки в UIPickerView

Этот сборщик имеет один компонент со 100 рядами (0, 1, 2, ..., 98, 99).

Я хотел бы реализовать код так, чтобы при нажатии на кнопки

  • button1: сделает сборщика выбора строки 21th (который имеет значение 20)
  • button2: сделает подборщика выберите строку 41-(который имеет значение 40)
  • Button3: сделает сборщик выбора строка 60-е (который имеет значение 60)

Я знаю, как сделать сборщик выбрать строку когда Метод вид первой нагрузка пути поместите следующий код, чтобы viewDidLoad():

- (void)viewDidLoad 
{ 
    ........ 
    [picker selectRow:50 inComponent:0 animated:YES]; 
} 

, но я не мог сделать сборщик выбрать нужную строку, когда я нажимаю на кнопки.

ответ

0

Хорошо, теперь я воссоздать проект и перепечатывать код:

- (IBAction) goToRowTwenty 
{ 
    [picker selectRow:20 inComponent:0 animated:YES]; 
    [timerPickerView reloadComponent:0]; 
} 

и он работает, я действительно не знаю, что случилось, но спасибо вы, ребята, отвечаете на мой вопрос.

4

Hook кнопка для метода действия, то в методе действия просто вызвать тот же самый selectRow:inComponent:animated: метода, т.е.

- (IBAction)button1Action { 
    [picker selectRow:20 inComponent:0 animated:YES]; 
} 

И вы подключить кнопку к этому методу в Interface Builder.

+0

Да, я сделал это. Я даже называю reloadComponent от сборщика, но он все еще не работает. Я должен что-то упустить. Это код, который я использую для кнопки «button1» в своем приложении. - (IBAction) goToRowTwenty {[picker selectRow: 20 inComponent: 0 анимированный: ДА]; [timerPickerView reloadComponent: 0]; } –

+0

Спасибо за подсказку. Сометомы вы просто не видите очевидного. :) –

0

вы можете поместить тот же код, который вы сохранили в viewDidLoad, для выбора pickerRow в событии, которое срабатывает при нажатии кнопки.

-(void)button1clickevent{ 
//FUNCTION MUST GET FIRE WHEN BUttON ! IS CLICKED 
     [picker selectRow:50 inComponent:0 animated:YES]; 
} 

HAPPY iCODING ...

+0

Да, я сделал это. Я даже называю reloadComponent от сборщика, но он все еще не работает. Я должен что-то упустить. Это код, который я использую для кнопки «button1» в своем приложении. - (IBAction) goToRowTwenty {[picker selectRow: 20 inComponent: 0 анимированный: ДА]; [timerPickerView reloadComponent: 0]; } –

+0

и whats this timepickerView здесь ... перезагрузите свой сборщик [сборщик reloadComponent: 0] not [timepicker reloadComponent: 0]; Также нет необходимости перезагружать сборщик. Проверьте, действительно ли ваш сборщик привязан к сборщику в xib. –

1

Также убедитесь, что сборщик определен с помощью «IBOutlet» следующим образом. И подключите направляющий выход сборщика к этому:

@property (nonatomic, retain) IBOutlet UIPickerView *picker; 
Смежные вопросы