1

Заголовок говорит, что у меня действительно есть метод, который вызывается для создания UIPickerView и в том же контроллере представления, что и методы делегата. -Контроллер реализует протоколы, UIPickerViewDataSource и UIPickerViewDelegateНевозможно вызвать методы делегатов UIPickerView, хотя делегат был установлен после [[UIPickerView alloc] init]

// ViewController.m 

- (void)setUpPickerView{ 
    UIPickerView *pickerView = [[UIPickerView alloc] init]; 
    pickerView.dataSource = self; 
    pickerView.delegate = self; 
    pickerView.showsSelectionIndicator=YES; 
    self.groupsTextField.inputView = pickerView; 
} 

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

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

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ 
    return self.pickerViewData[row]; 
} 

Я видел много ответов, где люди говорят, что если pickerView: numberOfRowsInComponent: компонент возвращает 0 это остановит другие методы делегата от называют, но это не так для меня, когда я устанавливаю точки останова, ни один из методов делегата не вызывается вообще.

Заранее благодарим за помощь!

+0

у вас установлен протокол делегата в файле .h –

+0

да @interface StudentShareListVC: EmbeddedVC инициализируется –

+1

Ваш 'self.groupTextField'? –

ответ

1

Спасибо всем за вашу помощь в конце концов, я сделал то, что я думал, что я бы и просто удалил текстовое поле и все связанное с ним в контроллере представления и снова начал. Я не вижу никакой реальной разницы в моем новом коде на то, что я разместил, поэтому я бы предположил, что это связано с текстовым полем в IB.

-1

Добавить Picker делегат файл .h

@ interface ViewController :UIViewController< UIPickerViewDataSource , UIPickerViewDelegate > 
Смежные вопросы