2010-05-02 68 views
4

我有UIView上的UIPickerView。我實現了其協議在.m文件h和代表:UIPickerView不顯示

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

任何想法,我失蹤,讓選擇工作?

+0

在numberOfRowsInComponent,你驗證self.arr不爲零,實際上有數據? – DyingCactus 2010-05-02 19:36:47

+0

該方法從未命中。沒有任何委託方法正在打。 – 4thSpace 2010-05-02 19:45:22

+0

現在有什麼問題? – Rajneesh071 2012-12-19 07:39:21

回答

7

如果委託方法沒有被調用,那麼在IB中雙擊檢查選擇器視圖的代理和數據源插座是否連接到文件的所有者。

在h文件,所述選擇器視圖出口應當聲明如下:

@屬性(非原子,保留)IBOutlet中UIPickerView * pickerView;

+0

所有這些都很好。我發現由於某種原因UIPickerView沒有被初始化。我斷開了它的IBoutlet並重新連接。現在一切都很好。 – 4thSpace 2010-05-02 20:33:48

+0

這對我沒有任何幫助。我只是從storyboard拖出來,Xcode使這個屬性有點不同。 @屬性(弱,非原子)IBOutlet UIPickerView * departmentPickerView; – coolcool1994 2013-04-20 22:27:56

1

有時是由於沒有連接到文件所有者的數據源和委託的筆尖

3

的pickerview你還沒有分配委託給UIPickerView那是沒有的委託方法的原因被調用。

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

希望這有助於讓我知道如果這個回答你的問題.. :)