UIDatePicker EventValueChanged 未显示实际 Date/Time

UIDatePicker EventValueChanged not showing actual Date/Time

我有两个 UILabel

1:时间(格式:HH:MM)

2:日期(格式:MMMM dd, yyyy)

我有一个名为 UIDatePickerModeDateAndTime 的 UIDatePicker:timeObjectReportedDatePicker

每次 datePicker 的值发生变化时,这两个标签应该显示来自 datePicker 的相应值。所以标签 1 将显示 HH:MM,标签 2 将显示 MMMM、dd、yyyy。

然而事实并非如此;而是出于测试目的,我记录了 datePicker 的值;这只是抓住当前 time/date。无论我更改日期或时间;该值只会更改为实际日期和时间,而不是选择器值。这是我在 header 中的代码。

@property (nonatomic, strong) IBOutlet UIDatePicker *timeObjectReportedDatePicker;

- (IBAction)datePickerValueChanged:(id)sender;

这是 datePickerValueChanged 方法的代码

-(void)datePickerValueChanged:(id)sender{

   NSLog(@"datePicker Value Changed");
   NSDate *today1 = self.timeObjectReportedDatePicker.date;

   NSLog(@"PickerValue: %@",today1);
   NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
  [dateFormat setDateFormat:@"MMMM dd, yyyy"];
   NSString *dateString11 = [dateFormat stringFromDate:today1];
   dateObjectReportedUILabel.text=dateString11;
}

我确实将 UIDatePicker SentEvent ValueChanged 作为 IBOutlet 连接到 valueDidChange 事件的 header 文件。

有人可以阐明我在这里做错了什么吗?

像这样改变你的操作方法

    - (IBAction)datePickerValueChanged:(UIDatePicker *)sender;

并像这样执行方法

     -(void)datePickerValueChanged:(UIDatePicker*)sender{
     [self updateReportlabel: sender];

}

// for change the year and month
 -(void)updateReportlabel:(UIDatePicker*)sender{
  NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
  [dateFormat setDateFormat:@"MMMM dd, yyyy"];
  dateObjectReportedUILabel.text = [dateFormat stringFromDate:sender.date];
      // call the update time method
      [self updateTimelabel: sender];

 }
 // for change the time 
-(void)updateTimelabel:(UIDatePicker*)sender{
  NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
  [dateFormat setDateFormat:@"HH:mm"];
  yourFirstLabel.text = [dateFormat stringFromDate:sender.date];

 }