如何从 NSStrings 数组中填充选择器视图?然后我将如何访问所选择项目的价值?

Posted

技术标签:

【中文标题】如何从 NSStrings 数组中填充选择器视图?然后我将如何访问所选择项目的价值?【英文标题】:How do I make a picker view populate from an array of NSStrings? How would I then access the value of the item picked? 【发布时间】:2014-03-10 04:50:13 【问题描述】:

好的,我需要一个选择器,以便用户可以从预定义选项列表中进行选择。有人可以给我一个简单、简化的版本,说明如何从 NSStrings 数组中填充选择器视图吗?那么,我如何从选择器中读取该值?我注意到像 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

【问题讨论】:

【参考方案1】:

这与您在UITableView 中填充数据的方式非常相似,通过设置数据源和委托。

1. 第一步是设置picker view的delegate。在.m 文件中设置数据源和委托

@interface YourViewController () <UIPickerViewDataSource, UIPickerViewDelegate>



@property (strong, nonatomic) UIPickerView *yourPickerView;

2.分配数据源和委托

self.yourPickerView.delegate = self;
self.yourPickerView.datasource = self;

3.实现数据源和委托

// 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]);

【讨论】:

这很棒!非常感谢您解释其他人似乎无法做到的事情。 :) @user3361944,没问题!很高兴为您提供帮助

以上是关于如何从 NSStrings 数组中填充选择器视图?然后我将如何访问所选择项目的价值?的主要内容,如果未能解决你的问题,请参考以下文章

奇怪的“无法识别的选择器”问题

如何从 ViewModel 对象填充选择器,设置为第一个元素的初始状态并处理选择选择器项的操作

Objective C如何根据其他数组项从数组中删除项

选择步进器时滚动视图重叠

从 Swift 中的 textField 获取 Webview URL

如何从列表视图中保存选择 ID