2014-02-06 1 views
0

У меня есть UILabel, который отображает дату и UIDatePicker, которые могут изменить дату в UILabel. Как «сохранить» дату, выбранную при изменении вида в раскадровке, поэтому, когда я вернусь к просмотру с помощью UILabel, выбранная дата сохраняется, а не возвращается к сегодняшней дате? Вот код для моего UIDatePicker и UILabel, который отображает NSDate:Сохранить NSDate Данные при изменении представлений в StoryBoard - iOS

- (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; 
} 

ответ

1

Вы можете хранить 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; 
    } 
} 
+0

Спасибо! Я добавил свой код. Не могли бы вы подробнее рассказать о своем ответе? Я как бы понимаю общую идею, но тот факт, что это дата, и отбрасывает меня. –

+1

Вы уже сохраняете или сохраняете эту дату где-то, прежде чем перейти на другой экран/просмотр? – GustavoAzOl

+0

Нет. Я не знаю, как и где сохранить дату. –

Смежные вопросы