2012-09-24 68 views
0

我有一個ViewController我的應用程序有一個單一的按鈕,點擊時,我需要顯示一個彈出視圖,以允許用戶從地址列表中選擇。UIPickerView在Popover - didSelectRow沒有被調用

我已經實現了ViewController如下:

@interface WelcomeViewController : UIViewController<UIPickerViewDelegate, UIPickerViewDataSource, UIPopoverControllerDelegate> 

我已經實現了拾取所需的委託功能。我看到彈出窗口出現,並在其中顯示UIPickerView,地址正確填充。當我在框架外面挑選時,彈出窗口也會消失 - 因此這部分看起來是正確的。

但是,picker只是不響應picks(它什麼也不做!) - 在調試器中,我看到didSelectRow沒有被調用。

我試過了我能想到的一切!任何幫助和建議,將不勝感激!

9/24更新: 我得到了這個工作,但不得不犧牲使用Popover ViewController,所以它不是一個理想的解決方案。我做到了,如下所示:

  1. 創建一個UIPickerView的地址,並將其添加爲WelcomeViewController
  2. 在WelcomeViewController實施了以下UIPickerViewDelegate功能的子視圖 - numberOfComponentsInPickerView,numberOfRowsInComponent,didSelectRow,titleforRow還設置委託和自營pickerview的數據源屬性(即WelcomeViewController)

這個工作現在,這種實現的缺點是,地址選擇器不消失時,我挑pickerview的框架之外(我想這是因爲它不在popoverviewcontroller裏)我通過在用戶執行下一個動作時在pickerview上設置hide屬性來解決這個問題。我已經閱讀了關於Stackoverflow中一個更好的解決方法,其中整個背景是一個大按鈕的一部分 - 如果我不能找到一種方法在彈出窗口中獲取選擇器,我可以採取措施)

+0

對不起,委託部分未顯示。以下是我已經實現 @interface WelcomeViewController代表:的UIViewController CoolDocMan

回答

1

如果您尚未您還將picker委託屬性設置爲WelcomeViewController的實例

+0

是的,我檢查,我已經將這個...... 我有WelcomeViewController UIPopoverController * locationPopoverController這兩個propertoes; UIPickerView * locationPickerView; – CoolDocMan

+0

而我在WelcomeViewController的viewDidLoad中設置了它們。但它仍然不起作用。我認爲我設置UIPopoverController的方式可能有一部分可以播放,但我不確定什麼是正確的方法... – CoolDocMan

+0

但是,您是否這樣做:locationPickerView.delegate = self;和locationPopoverController.delegate = self; //或者在界面生成器 – Codezy

相關問題