弹出窗口中的UIPickerView - didSelectRow未被调用

时间:2012-09-24 00:30:46

标签: iphone delegates uipickerview uipopovercontroller

我的应用程序有一个ViewController,它只有一个按钮,点击后,我需要显示一个弹出视图,允许用户从地址列表中进行选择。

我已按照以下方式实施ViewController

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

我已经为选择器实现了必要的委托功能。我看到弹出窗口显示并在其中显示UIPickerView,并正确填充了地址。当我在框架外面挑选时,弹出窗口也会消失 - 因此该部分似乎正常工作。

然而,选择器只是没有响应选择(它什么也没做!) - 并且在调试器中我看到didSelectRow没有被调用。

我已经尝试了我能想到的一切!任何帮助和建议将不胜感激!

9/24更新: 我得到了这个工作,但不得不牺牲使用Popover ViewController,所以它不是一个理想的解决方案。我这样做了:

  1. 为地址创建了一个UIPickerView,并将其添加为WelcomeViewController的子视图
  2. 在WelcomeViewController中实现了以下UIPickerViewDelegate函数 - numberOfComponentsInPickerView,numberOfRowsInComponent,didSelectRow,titleforRow,并将pickerview的委托和数据源属性设置为self(即WelcomeViewController)
  3. 现在这样做了,这个实现的缺点是当我在pickerview的框架之外选择时,地址选择器不会消失(我想这是因为它不在popoverviewcontroller中)我通过设置解决了这个问题当用户执行下一个操作时,pickerview上的hide属性。我已经阅读了Stackoverflow中一个更好的解决方法,其中整个背景是一个大按钮的一部分 - 如果我找不到一种方法来获取弹出窗口内的选择器,我可以诉诸于此。

1 个答案:

答案 0 :(得分:1)

如果您还没有将picker委托属性设置为WelcomeViewController的实例

相关问题