4thSpace
4thSpace

Reputation: 44312

UIPickerView not displaying

I have a UIPickerView on a UIView. I've implemented its protocol in the .h and delegates in the .m files:

 <UIPickerViewDataSource, UIPickerViewDelegate>

In IB, I've connected the above to the picker, which I also have an IBoutlet for. The methods look like this:

- (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
}

Any ideas which piece I'm missing to get the picker working?

Upvotes: 4

Views: 7871

Answers (3)

Dalee Davis
Dalee Davis

Reputation: 981

you have not assigned the delegate to the UIPickerView thats the reason none of the delegate methods are called.

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

Hope this helps and let me know if this answers your question..:)

Upvotes: 3

DanKiiing
DanKiiing

Reputation: 102

sometimes it's due to the pickerview not being connected to the file Owner's datasource and delegate in the nib

Upvotes: 1

user121301
user121301

Reputation:

If the delegate methods are not getting called, then in IB double check that the picker view's delegate and datasource outlets are connected to File's Owner.

In the .h file, the picker view outlet should be declared like this:

@property (nonatomic, retain) IBOutlet UIPickerView *pickerView;

Upvotes: 7

Related Questions