- (void) viewWillAppear: (BOOL) анимированное обнаружение пользовательской анимации - PullRequest
2 голосов
/ 23 июня 2011

У меня есть кнопка, которая при нажатии выдвигает контроллер вида, однако я использую пользовательскую анимацию, поэтому pushViewController: childController animated: установлен на NO.Однако я хочу обнаружить эту пользовательскую анимацию в моем методе - (void)viewWillAppear:(BOOL)animated и написать оператор if следующим образом:

- (void)viewWillAppear:(BOOL)animated { 
     if (customAnimation occured) {//Do this} 
     else {//Do this}
}

Это метод для моей кнопки, которая выдвигает контроллер представления.

- (void)nextPressed:(id)sender {
    childController = [[CategoryOneDetailController alloc] initWithNibName:xibDownName bundle:nil];
    [UIView  beginAnimations: @"Showinfo"context: nil];
    [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:0.75];
    [self.navigationController pushViewController: childController animated:NO];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:NO];
    [UIView commitAnimations];
    [childController release];
}

Любая помощь будет высоко ценится, спасибо, Сами.

1 Ответ

1 голос
/ 23 июня 2011

Если вы не используете стандартные анимации, я думаю, что вам лучше всего добавить свойство для вашего контроллера push-представления, установленное на YES в случае пользовательской анимации (и NO по умолчанию, чтобы не прерыватьлюбое существующее поведение).Затем вы можете проверить это свойство в viewDidAppear:.

Если вам нужно, чтобы ваша пользовательская логика выполнялась после запуска анимации, вы можете настроить обработчик завершения анимации или блок.

...