iOS 7中文本字段的弹出/模态选择器

我在搞清楚如何实现标准弹出选择器时遇到了很多麻烦。 像许多应用程序的注册屏幕一样,当用户选择生日文本字段时,我想要一个弹出选择器出现以便用户可以选择他们的生日,点击完成并将格式化的日期添加到文本字段。 这看起来似乎不应该那么难,但似乎在iOS 7中没有简单,清晰,标准的方法。

我搜索了互联网并看到一些说使用模态,其他人说操作表,其他人说弹出窗口,还有其他人说单独的视图控制器。

任何人都可以告诉我这样做的标准方法是什么或如何实现它的片段?

我认为“标准”方式是将选择器设置为文本字段的inputView。

UIPickerView *picker = [[UIPickerView alloc] init]; self.textField.inputView = picker; 

它将弹出底部,就像键盘在文本字段中触摸时一样。

这是一个如何使用选择器作为输入视图的简单实现:

 @interface ViewController () @property (weak, nonatomic) IBOutlet UITextField *tf; @property (strong,nonatomic) NSArray *theData; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UIPickerView *picker = [[UIPickerView alloc] init]; picker.dataSource = self; picker.delegate = self; self.tf.inputView = picker; self.theData = @[@"one",@"two",@"three",@"four"]; } -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { return self.theData.count; } -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 1; } -(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { return self.theData[row]; } -(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { self.tf.text = self.theData[row]; [self.tf resignFirstResponder]; } 

ActionSheetPicker-3.0库似乎做得很好。

日期选择器

动画