ios - 如何从 NSString 数组中填充选择器 View ?然后我如何访问所选项目的值(value)?

标签 ios iphone objective-c ipad

好的,我需要一个选择器,以便用户可以从预定义选项列表中进行选择。有人可以给我一个简单、简化的版本,说明如何从 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/

相关文章:

iphone - iOS 5 - Coredata Sqlite DB 在杀死应用程序后丢失数据

ios - 如何使用 Pixate Framework 定义我的 CSS 以显示 'HelveticaNeue-Light'?

ios - 将 Storyboard 上的 View 置于所有其他 View 之上

ios - UIActivityViewController Flickr 共享 - 没有出现 Flickr 选项

objective-c - 为什么我得到这个 : _cfurl: unrecognized selector

iphone - 如何将CorePlot创建的图形保存为jpg文件

objective-c - 如何使用 objectForKey 访问 NSDictionary 中的数据

ios - 尝试设置 PFUser 的个人资料图片时出现 fatal error

ios - 使用正确的时区将 ISO8601 字符串转换为 NSDate

iphone - 将 iPhone 挂载为磁盘