UIDatePicker如果未滚动UIDatePicker,则选择的值是错误的

Rin*_*ain 6 iphone objective-c uidatepicker

在此输入图像描述

我正在制作一个我正在使用的iPhone应用程序,并在动作表中UIDatePicker显示所选的时间.在动作表中,时间以10分钟的间隔显示.

textfield 我滚动时正确设置了值 Datepicker

如果我 滚动动作表然后直接单击选择按钮然后文本字段设置当前时间(11:56)但我选择在动作表(11:50)时间.(textfield)显示不正确的值.

如何设置textfield's值(11:50).给我一些解决方案.

Par*_*iya 1

编辑 让您的类在选择器中处理 UIControlEventValueChanged 事件。添加此行 ViewDidLoad 方法或当您的操作表显示时:

  [picker addTarget:self action:@selector(dateChanged:) 
          forControlEvents:UIControlEventValueChanged];
Run Code Online (Sandbox Code Playgroud)

现在,当日期更改时,将调用选择器

更新

- (void) dateChanged:(id)sender{
    // handle date changes and set in textField
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    NSString *strdate = [dateFormatter stringFromDate:self.datePicker.date]; //provide your selected date here
    self.dateTexField.text = strdate;
}
Run Code Online (Sandbox Code Playgroud)

如果未调用上述方法,则意味着日期未更改,因此请始终在文本字段中设置默认日期。


将日期转换为字符串对象

更新

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
 NSString *strdate = [dateFormatter stringFromDate:self.datePicker.date]; //provide your selected date here
Run Code Online (Sandbox Code Playgroud)

现在将值设置为 textField,如下所示:

  self.dateTextField.text = strdate;
Run Code Online (Sandbox Code Playgroud)