即使以编程方式设置日期,NSDatePicker也会返回默认日期

时间:2015-03-18 12:16:47

标签: ios objective-c nsdatepicker

我有datePicker个实例,该实例与IBOutlet

相关联
@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
}

当我在datePicker.date方法中设置awakeFromNib后,我会记录- (IBAction)aButtonTouchUpInsideEvent:(UIButton *)button { NSLog(@"%@", datePicker.date); //Logs [NSDate date] value } ,它会给出正确的值。直到现在这么好。

现在,当我尝试在视图初始化之后获取日期值时,例如,在按钮单击事件上,它为我提供了默认值,即当前日期值。

awakeFromNib

我想知道为什么它没有给我我在{{1}}方法中设置的值。我试着寻找这个问题,但没有运气。

2 个答案:

答案 0 :(得分:2)

系统会在某个时候覆盖您的值。您可以将代码移至-willMoveToSuperview:

答案 1 :(得分:0)

试试这个

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

然后尝试从选择器获取日期时间可能存在设置时间的问题