UIDatePicker EventValueChanged未显示实际日期/时间



我有两个UILabels

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

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

我有一个UIDatePicker,它是UIDatePickerModeDateAndTime,名为:timeObjectReportedDatePicker

每次datePicker的值更改时,这两个标签都应该显示datePicker中各自的值。因此,标签1将显示HH:MM,标签2将显示MMMM,dd,yyyy。

然而,事实并非如此;出于测试目的,我记录了datePicker的值;其仅获取当前时间/日期。不管我更改的日期或时间;该值仅更改为实际日期和时间,而不是选择器值。这是我在标题中的代码。

@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事件的头文件。

有人能告诉我我在这里做错了什么吗?

将您的操作方法更改为类似

- (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];
}

最新更新