Сделайте что-нибудь, когда анимация будет готова. - PullRequest
1 голос
/ 07 апреля 2010

В моем приложении для навигации есть анимация.

[UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1.5];
        [UIView setAnimationBeginsFromCurrentState:YES];
        [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown 
                                       forView:self.view cache:YES];        
        [UIImageView commitAnimations];

Сразу после этого кода я звоню

[self.navigationController popViewControllerAnimated:NO];

Дело в том, что я не хочу вставлять свой ViewController до того, как моя анимация будет готова.

Ответы [ 2 ]

2 голосов
/ 07 апреля 2010

Установите делегат анимации и селектор didStop и вставьте свой контроллер представления в указанный вами метод didStop:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];

[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown 
                                       forView:self.view cache:YES];        
[UIImageView commitAnimations];

Обратите внимание, что селектор didStop должен иметь форму, указанную в документе (см. Метод + setAnimationDidStopSelector вдокументы для более подробной информации):

селектор должен иметь форму: - (void) animationDidStop: (NSString *) animationID закончен: (NSNumber *) закончен контекст: (void *) контекст.

1 голос
/ 07 апреля 2010

Вы можете установить селектор, который будет вызываться после завершения анимации:

[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];

И в этом селекторе вызовите контроллер представления.

- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {

       // Pop the controller now
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...