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];
}
我有两个 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];
}