我有一个 UIDatePicker 并尝试根据用户选择的日期实时更新 UILabel。如果用户选择一个日期(比如 2012 年 1 月 21 日),然后改变主意(比如 2013 年 3 月 21 日),我希望 UILabel 能够反映这一变化。
到目前为止,UILabel 仅反映当前日期,即使用户从 UIDatePicker 中选择了另一个日期,也不会更新其文本。我还搜索了解决此问题的指针,但无济于事。任何帮助将不胜感激。谢谢。
到目前为止的代码:.h 文件,我有
@property (strong, nonatomic) IBOutlet UILabel *entryDateSetLabel;
@property (strong, nonatomic) IBOutlet UIDatePicker *entryDateSelected;
- (IBAction)datePickerDateChanged:(id)sender;
datePickerDateChanged 连接到日期选择器的值更改事件
.m 文件,
- (void)viewDidLoad
{
[super viewDidLoad];
self.entryDateSelected = [[UIDatePicker alloc] init];
[self.entryDateSelected addTarget:self action:@selector(datePickerDateChanged:) forControlEvents:UIControlEventValueChanged];
}
- (IBAction)datePickerDateChanged:(id)sender {
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"MMMM d, yyyy"];
NSString *entryDateInString = [outputFormatter stringFromDate:self.entryDateSelected.date];
[[self entryDateSetLabel] setText: entryDateInString];
}
截图