UIPickerView 的问题

Posted

技术标签:

【中文标题】UIPickerView 的问题【英文标题】:Trouble with UIPickerView 【发布时间】:2011-07-14 11:59:15 【问题描述】:

我完全被 UIPickerView 所困扰。我不断收到错误:

GDB:接收到的信号:“SIGABRT”。

2011-07-14 13:35:19.132 MeldStad[677:207] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[UIView numberOfComponentsInPickerView:]:发送了无法识别的选择器到实例 0xaac34c0'

我在互联网上阅读了一些解决方案,但没有一个对我有用.. 我还尝试了超过 1 个 PickerView 教程。不知道怎么办才知道。

这里是选择器方法的来源:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

    return 1;


- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component

    return [pickerData count];


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

    return [pickerData objectAtIndex:row];

【问题讨论】:

你是如何设置委托的,你在哪里添加了这些方法? 好的,我认为现在连接很好。我按照本教程进行连接(步骤 6)。 roseindia.net/tutorial/iphone/examples/UIPickerView/… 错误消失了,但是当我尝试通过单击按钮来检索所选项目时,我什么也得不到。 NSInteger 行 = [singlePicker selectedRowInComponent:0]; NSString *selected = [pickerData objectAtIndex:row]; NSLog(@"test:", selected); singlePicker 必须是 nil 即未在 IB 中连接。检查一下。 非常感谢您的帮助,现在可以使用了 :) 【参考方案1】:

错误是说您在 IB 中将 UIPicker 委托设置到没有 UIPickerDelegate 方法的 UIView

@interface YourViewController : UIViewController <UIPickerViewDelegate> 

或者您将代表分配到了错误的文件。检查 IB 连接设置。您的数据源和委托应设置为 FilesOwner

【讨论】:

好的,我认为现在连接很好。我按照本教程进行连接(第 6 步)。roseindia.net/tutorial/iphone/examples/UIPickerView/… 错误消失了,但是当我尝试通过单击按钮检索所选项目时,我没有得到任何回复。 NSInteger 行 = [singlePicker selectedRowInComponent:0]; NSString *selected = [pickerData objectAtIndex:row]; NSLog(@"test:", selected);

以上是关于UIPickerView 的问题的主要内容,如果未能解决你的问题,请参考以下文章

为 UIPickerView 创建一个完成按钮

如何在多 UIPICKERVIEW 中配置“DidSelectRow”?

UIPickerView 中显示的数组不正确

按下按钮后如何动画显示 UIPickerView?

如何测试 DatePickerIOS

UIPickerView 显示问题