NSDatePicker返回默认日期,即使日期是通过程序设置的



我有一个链接到IBOutletdatePicker实例。

@interface SomeClass() {
    __weak IBOutlet UIDatePicker *datePicker;
}

现在,在我的awakeFromNib方法中,我正在设置minimumDatemaximumDatedate属性

- (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方法中设置的值。我试着搜索这个问题,但没有成功。

您的值在某个时间被系统覆盖。您可以将代码移动到-willMoveToSuperview:

试试这个

    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];

然后尝试从picker获取日期时间。设置时间可能存在一些问题

相关内容

  • 没有找到相关文章

最新更新