在DatePicker IOS中保存用户输入日期

时间:2014-06-30 11:45:51

标签: ios date datepicker

我的应用程序有一个菜单,当您从菜单中选择倒计时时钟时,您将被传送到视图控制器。您使用日期选择器选择日期,然后按“开始倒计时”按钮。在datepicker上方是一个标签,显示剩余的天,小时,分钟和秒。我正在使用它作为部署倒计时时钟。

我遇到的问题是,退出应用程序后;或者在我转到菜单上的其他项目后,每当我更改屏幕或退出应用程序时,日期选择器都不会保存日期。

我的代码有问题,我只是不知道是什么。请帮帮我,我是新手,需要好好推动! :)

- (IBAction)startCountdown:(id)sender {
    NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];
    NSUInteger preservedComponents = (NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit);
    self.datePicker.date = [calendar dateFromComponents:[calendar components:preservedComponents fromDate:self.datePicker.date]];
    NSTimer *timer;
    timer = [NSTimer scheduledTimerWithTimeInterval:1.0
                                             target:self
                                           selector:@selector(updateTime)
                                           userInfo:nil
                                            repeats:YES];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSDate *selectedDate = [self.datePicker date];
    [defaults setObject:selectedDate forKey:@"DatePickerViewController.selectedDate"];
    NSDate *storedDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"DatePickerViewController.selectedDate"];
    [self.datePicker setDate:storedDate animated:NO];
}

1 个答案:

答案 0 :(得分:0)

我发现工作实际上是将它放在 - (void)viewdidload方法中:

NSDate *dateSelected = [[NSUserDefaults standardUserDefaults] objectForKey:@"datePicker.selectedDate"];

if (dateSelected) {
    [self.datePicker setDate:dateSelected];  
}
self.countdownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0

                                                       target:self

                                                     selector:@selector(updateTime)

                                                     userInfo:nil

                                                      repeats:YES];

[self updateTime];