iOS 5以编程方式将数组添加到选择器

时间:2011-12-06 20:57:18

标签: ios arrays xcode picker

我正在构建一个将记录插入数据库的应用程序,它从查找表中提取该数据库中的项目,使其在预定义字段中具有正确的项目。显然选择器是这种方法的最佳途径,但我遇到了问题。有两个不同的页面,其中两个之间有大约15个不同的选择器。现在我需要做的是在用户选择字段时弹出选择器。

我发现的所有在线教程和示例都使用GUI编辑器将选择器与数据源链接,或者在单独的文件中使用单个数据源作为选择器(我在这里没做)。

如何在调用时将NSMutableArray加载到选择器中?

谢谢!

2 个答案:

答案 0 :(得分:3)

拥有一个数据源和委托类,它实现了所有必需的数据源/委托方法,定义为符合UIPickerViewDataSourceUIPickerViewDelegate并且标题中定义了@property (retain, nonatomic) NSMutableArray *dataArray; 。使数据源/委托类的方法(例如- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component)从dataArray加载字符串等。然后在创建/更改选择器时,执行以下操作:

MyPickerSource *source = [[MyPickerSource alloc] init];
source.dataArray = [NSMutableArray arrayWithArray:<PreloadedArray>];
[picker setDelegate:source];
[picker setDataSource:source];
[picker reloadAllComponents];  // If re-using an old picker
[source release];
[self addSubview:picker];      // If creating a new picker

希望这一切都清楚!

答案 1 :(得分:2)

您想使用UIPickerViewDataSourceUIPickerViewDelegate,并通过这些方法实现必要的功能,即numberOfRowsInComponent:titleForRow:,您可以从{ {1}}。

要考虑的重要事项是,当您需要更新时,您可以在pickerview上调用NSMutableArray。您还可以使用reloadAllComponents在更新列表中的组件时将选择器滚动到相应的选择。