我有两个UILabel
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事件的头文件。
有人可以阐明我在这里做错了什么吗?
答案 0 :(得分:1)
像那样更改您的操作方法
- (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];
}