NSDatePicker returns 默认日期,即使以编程方式设置日期
NSDatePicker returns default date even when date is set programatically
我有一个链接到 IBOutlet
的 datePicker
实例。
@interface SomeClass() {
__weak IBOutlet UIDatePicker *datePicker;
}
现在,在我的 awakeFromNib
方法中,我正在设置 minimumDate
、maximumDate
和 date
属性
- (void)awakeFromNib {
[datePicker setMinimumDate:[[NSDate date] dateByAddingTimeInterval:60*10]];
[datePicker setMaximumDate:[[NSDate date] dateByAddingTimeInterval:60*60*24*10]];
[datePicker setDate:datePicker.minimumDate];
NSLog(@"%@", datePicker.date);
//Logs Correct Value
}
当我在 awakeFromNib
方法中设置后记录 datePicker.date
时,它给出了正确的值。到现在都这么好。
现在,当我尝试在视图初始化后获取日期值时,例如,在单击按钮事件时,它会给我默认值,即当前日期值。
- (IBAction)aButtonTouchUpInsideEvent:(UIButton *)button {
NSLog(@"%@", datePicker.date);
//Logs [NSDate date] value
}
我想知道为什么它没有给我在 awakeFromNib
方法中设置的值。我试着搜索这个问题,但没有成功。
试试这个
NSString *dateStr = @"Tue, 25 May 2010 12:53:58 +0000";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"];
NSDate *date = [dateFormat dateFromString:dateStr];
[myPicker setDate:date];
然后尝试从选择器获取日期时间,可能是设置时间有问题
您的值有时会被系统覆盖。您可以将代码移至 -willMoveToSuperview:
我有一个链接到 IBOutlet
的 datePicker
实例。
@interface SomeClass() {
__weak IBOutlet UIDatePicker *datePicker;
}
现在,在我的 awakeFromNib
方法中,我正在设置 minimumDate
、maximumDate
和 date
属性
- (void)awakeFromNib {
[datePicker setMinimumDate:[[NSDate date] dateByAddingTimeInterval:60*10]];
[datePicker setMaximumDate:[[NSDate date] dateByAddingTimeInterval:60*60*24*10]];
[datePicker setDate:datePicker.minimumDate];
NSLog(@"%@", datePicker.date);
//Logs Correct Value
}
当我在 awakeFromNib
方法中设置后记录 datePicker.date
时,它给出了正确的值。到现在都这么好。
现在,当我尝试在视图初始化后获取日期值时,例如,在单击按钮事件时,它会给我默认值,即当前日期值。
- (IBAction)aButtonTouchUpInsideEvent:(UIButton *)button {
NSLog(@"%@", datePicker.date);
//Logs [NSDate date] value
}
我想知道为什么它没有给我在 awakeFromNib
方法中设置的值。我试着搜索这个问题,但没有成功。
试试这个
NSString *dateStr = @"Tue, 25 May 2010 12:53:58 +0000";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"];
NSDate *date = [dateFormat dateFromString:dateStr];
[myPicker setDate:date];
然后尝试从选择器获取日期时间,可能是设置时间有问题
您的值有时会被系统覆盖。您可以将代码移至 -willMoveToSuperview: