UIPickerView не отображается - PullRequest
4 голосов
/ 02 мая 2010

У меня есть UIPickerView на UIView. Я реализовал его протокол в .h и делегаты в .m файлах:

 <UIPickerViewDataSource, UIPickerViewDelegate>

В IB я подключил вышеупомянутое средство, для которого у меня также есть IBoutlet. Методы выглядят так:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {
return 1;
}

- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {
return [self.arr count];
}

- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row  forComponent:(NSInteger)component {
return @"test";
}

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
//do something
}

Есть идеи, какой кусок мне не хватает, чтобы заставить сборщика работать?

Ответы [ 3 ]

7 голосов
/ 03 мая 2010

Если методы делегата не вызывают, то в IB дважды проверьте, что выходы делегата и источника данных представления выбора связаны с владельцем файла.

В файле .h вывод представления выбора должен быть объявлен так:

@ свойство (неатомное, сохранение) IBOutlet UIPickerView * pickerView;

3 голосов
/ 18 декабря 2012

вы не назначили делегата в UIPickerView, поэтому ни один из методов делегата не вызван.

 UIPickerView *pickerView;
 pickerView.delegate = self;//write this line in view did load method.

Надеюсь, это поможет, и дайте мне знать, если это ответит на ваш вопрос ..:)

1 голос
/ 18 декабря 2012

иногда это происходит из-за того, что средство выбора не подключено к источнику данных владельца файла и делегату в nib

...