Стандартная анимация компонентов в iPhone-приложении

Сделаем анимацию для UIDatePicker, для этого изменим класс DetailViewController.



- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    if (self.isDetail) {
        self.textField.text = self.eventInfo;
        
        // при просмотре деталей, активировать текстовое поле будет невозможно
        self.textField.userInteractionEnabled = NO;
        self.datePicker.userInteractionEnabled = NO;
        self.buttonSave.alpha = 0;
        
        [self performSelector:@selector(setDatePickerValueWithAnimation) withObject:nil afterDelay:0.5];
    } else {
        self.buttonSave.userInteractionEnabled = NO;
        
        self.datePicker.minimumDate = [NSDate date];
        [self.datePicker addTarget:self
                            action:@selector(datePickerValueChanged)
                  forControlEvents:UIControlEventValueChanged];
        
        [self.buttonSave addTarget:self
                            action:@selector(save)
                  forControlEvents:UIControlEventTouchUpInside];
        
        UITapGestureRecognizer *handleTap = [[UITapGestureRecognizer alloc] initWithTarget:self
            action:@selector(handleEndEditing)];
        [self.view addGestureRecognizer:handleTap];
    }
}

- (void)setDatePickerValueWithAnimation
{
    [self.datePicker setDate:self.eventDate animated:YES];
}


Далее сделаем анимацию для перезагрузки данных в таблицу. Для этого в классе MainTableViewController изменим метод viewWillAppear.

- (void)viewWillAppear:(BOOL)animated
{
    NSArray *array = [[UIApplication sharedApplication] scheduledLocalNotifications];
    self.arrayEvents = [[NSMutableArray alloc] initWithArray:array];

    [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];
}


Было бы неплохо еще сделать чтобы при нажатии на кнопку Сохранить мы автоматически возвращались к таблице. Для этого в классе DetailViewController в методе DetailViewController добавим следующий код.

    [self.navigationController popViewControllerAnimated:YES];