我有一个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];
}
截图
答案 0 :(得分:2)
在“价值变化”事件和
连接数据选择器使用此代码我从其他地方复制它,所以你必须做一些改变
NSDate *today1 = pkrViewDate.date;
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM dd, yyyy"];
NSString *dateString11 = [dateFormat stringFromDate:today1];
lblDate.text=dateString11;
ans还检查当你滚动datepicker时,“datePickerDateChanged”方法是否正在调用。
答案 1 :(得分:0)
刚刚解决了问题。 : - )
viewDidLoad应该读
- (void)viewDidLoad
{
[super viewDidLoad];
NSDate *now = [NSDate date];
[_entryDateSelected setDate:now animated:YES];
//self.entryDateSelected = [[UIDatePicker alloc] init];
[self.entryDateSelected addTarget:self action:@selector(datePickerDateChanged:) forControlEvents:UIControlEventValueChanged];
}
希望这有助于其他人。