好的,我需要一个选择器,以便用户可以从预定义选项列表中进行选择。有人可以给我一个简单、简化的版本,说明如何从 NSString 数组填充选择器 View 吗?那么,我如何从选择器中读取该值?我注意到像 nameOfPicker.value 和 nameOfPicker.text 这样的东西在这里不起作用。
谢谢!
我已经阅读了以下文档,但我不太明白它们的意思。 https://developer.apple.com/library/ios/documentation/userexperience/conceptual/UIKitUICatalog/UIPickerView.html https://developer.apple.com/library/ios/documentation/General/Conceptual/CocoaEncyclopedia/DelegatesandDataSources/DelegatesandDataSources.html#//apple_ref/doc/uid/TP40010810-CH11
最佳答案
这与通过设置数据源和委托(delegate)在 UITableView
中填充数据的方式非常相似。
1. 第一步是设置选取器 View 的委托(delegate)。在 .m
文件中设置数据源和委托(delegate)
@interface YourViewController () <UIPickerViewDataSource, UIPickerViewDelegate>
{
}
@property (strong, nonatomic) UIPickerView *yourPickerView;
2.分配数据源和委托(delegate)
self.yourPickerView.delegate = self;
self.yourPickerView.datasource = self;
3.实现数据源和委托(delegate)
// returns the number of 'columns' to display.
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
// returns the # of rows in each component..
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return self.yourArrayofStrings.count;
}
//The title that should be shown in picker view
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
NSString *yourTitle = [self.yourArrayofStrings objectAtIndex:row]
return yourTitle;
}
//This is called when Picker view value is selected
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
NSLog @(@"Selected row = %@",[self.yourArrayofStrings objectAtIndex:row]);
}
关于ios - 如何从 NSString 数组中填充选择器 View ?然后我如何访问所选项目的值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22292300/