我有一个显示日期的 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/