2011-03-16 53 views
0

在幫助文檔,它說:reloadComponent方法UIPickerView

調用此方法將導致選擇器視圖來查詢新數據委託給定組件。

我在添加一些斷點:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 

當我打電話的reloadComponent方法,但他們沒有被稱爲。問題是什麼?

+0

你提供了reloadComponent的正確索引嗎?嘗試調用reloadAllComponents – 2011-03-16 08:51:43

+0

檢查是否已將'pickerView'的'Datasource'和'Delegate'Connections連接到文件的所有者。希望這可以幫助你。 – 2011-03-16 08:58:05

+0

對不起,我已經將委託和數據源設置爲文件所有者。但它沒有奏效。 – Daemon 2011-03-16 09:00:07

回答

2

您需要將pickerViewdataSource屬性設置爲實現UIPickerViewDataSource protocol的類的實例。

我認爲文檔是指在代表團的軟件工程設計模式中的「委託」,而不是該類的屬性delegate,這可能有點誤導。

+0

我試過了,但沒有奏效。 – Daemon 2011-03-16 09:01:03

+0

我在viewWillAppear方法中調用了reloadAllComponents,是嗎? – Daemon 2011-03-16 09:02:29

+0

在那裏調用它似乎沒問題。你有沒有檢查你的dataSource是否按照你的預期設置?嘗試在'reloadAllComponents'上添加一個斷點,並在調試器中查看一切正如你所期望的(或者在使用NSLog語句進行此調用之前打印出值)? – 2011-03-16 09:19:31