ios - 在 Storyboard中更改 View 时保存 NSDate 数据 - iOS

标签 ios save nsdate uistoryboard uidatepicker

我有一个显示日期的 UILabel 和一个可以更改 UILabel 中的日期的 UIDatePicker。在 Storyboard 中更改 View 时如何“保存”所选日期,以便当我使用 UILabel 返回 View 时,所选日期仍会保存,而不是恢复到今天的日期?这是显示 NSDate 的 UIDatePicker 和 UILabel 的代码:

- (void)flatDatePicker:(FlatDatePicker*)datePicker dateDidChange:(NSDate*)date {

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSCalendar *coptic = [[NSCalendar alloc] initWithCalendarIdentifier:@"coptic"];
[dateFormatter setCalendar:coptic];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];

if (datePicker.datePickerMode == FlatDatePickerModeDate) {
    [dateFormatter setDateFormat:@"EEEE, MMMM, dd, yyyy"];
} else if (datePicker.datePickerMode == FlatDatePickerModeDate) {
    [dateFormatter setDateFormat:@"HH:mm:ss"];
} else {
    [dateFormatter setDateFormat:@"EEEE, MMMM, dd, yyyy HH:mm:ss"];
}
NSString *value = [dateFormatter stringFromDate:date];
self.labelDateSelected.text = value;
}

最佳答案

您可以将 NSDate 存储在变量中。然后在 viewWillDisappear 中保存日期:

-(void)viewWillDisappear:(BOOL)animated {
     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
     [defaults setObject:lastPickedDate forKey:@"lastDate"];
}

然后,当您返回此屏幕时,您可以验证是否保存了日期并在 viewDidLoad 或 viewDidAppear 中恢复它。

-(void)viewDidLoad {
     //another code

     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
     NSDate *date = [defaults objectForKey:@"lastDate"];

     if(date) {
        _datePicker.date = date;
     }
}

关于ios - 在 Storyboard中更改 View 时保存 NSDate 数据 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21609408/

相关文章:

objective-c - 连接常量 Objective-C ios

ios - 如何使用协议(protocol)从 UIView 设置对象布局

class - 为什么我无法保存此 SalesForce Batchable 类?

ios - 处理日光时差

ios - 如何在iOS中获取当前本地时间

ios - 为什么我不能用 Fishhook Hook 我的私有(private)函数

ios - Cocoapods 包含/访问自己的核心数据模型

php - CakePHP 在登录时保存日期/时间

java - PyCharm - 无法保存设置 - 无法保存设置。请重启 PyCharm 社区版

ios - 具有 NULL 值的 NSDateFormatter 部分结果