Я пытаюсь загрузить дату, выбранную пользователем в последний раз, каждый раз, когда появляется мое представление.
Этот IBAction вызывается, когда мой datePicker меняет значение. datepick - мой datePicker
Я делаю это для сохранения в свойстве rootVC.
- (void)viewWillDisappear:(BOOL)animated {
BookingViewController *bookingVC = [[BookingViewController alloc] init];
bookingVC.selectedDate = [datepick date];
[bookingVC release];
}
Загружайте его каждый раз, когда viewAppears.
- (void)viewWillAppear:(BOOL)animated
{
// set datePicker Range.
NSDate *todaysDate = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
[dateComponents setHour:48];
NSDateComponents *dateComponents2 = [[NSDateComponents alloc] init];
[dateComponents2 setMinute:30];
NSDate *maxDate = [gregorian dateByAddingComponents:dateComponents toDate:todaysDate options:0];
NSDate *minDate = [gregorian dateByAddingComponents:dateComponents2 toDate:todaysDate options:0];
datepick.maximumDate = maxDate;
datepick.minimumDate = minDate;
if (self.dateToSet == nil) {
[datepick setDate:minDate animated:YES];
}
else {
[datepick setDate:dateToSet animated:YES];
}
[dateComponents release];
[dateComponents2 release];
[gregorian release];
choice = [datepick date];
choiceString = [dateFormatter stringFromDate:choice];
dateTextfield.text = choiceString;
}
Перед нажатием dateViewController
я передаю сохраненную дату (self.selectedDate) в свойство dateViewController.dateToSet
- (void)advanceBooking:(id) sender {
DateViewController *dateViewController= [[DateViewController alloc]
initWithNibName:@"DateViewController"
bundle:nil];
if (self.selectedDate == nil) {
selectedDate = [[NSDate alloc] init];
}
dateViewController.dateToSet = self.selectedDate;
NSLog(@"dateVC.dateToSet :%@ selectedDate:%@", dateViewController.dateToSet, self.selectedDate); // both read as current date though it was the first call? weird.
dateViewController.hidesBottomBarWhenPushed = YES;
dateViewController.navigationItem.hidesBackButton = YES;
[self.navigationController pushViewController:dateViewController animated:YES];
[dateViewController release];
}
Думаю, что-то связано с тем, как я инициализирую свойство? Когда я должен их инициировать?