UIPickerView无法显示

时间:2010-05-02 18:56:32

标签: iphone cocoa-touch iphone-sdk-3.0 uipicker

我在UIView上有一个UIPickerView。我已经在.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 个答案:

答案 0 :(得分:7)

如果未调用委托方法,则在IB中仔细检查选择器视图的委托和数据源出口是否已连接到文件所有者。

在.h文件中,选择器视图出口应该声明如下:

@property(非原子,保留)IBOutlet UIPickerView * pickerView;

答案 1 :(得分:3)

您没有将委托分配给UIPickerView,因为没有调用任何委托方法。

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

希望这会有所帮助,如果这回答了你的问题,请告诉我.. :)

答案 2 :(得分:1)

有时这是因为pickerview没有连接到文件所有者的数据源和nib中的委托