Образец на GitHub
У меня странная проблема.
У меня есть приложение на основе навигации с двумя UIViewControllers и эффектом Curl для перехода между ними.
Я добавляю в панель кнопку и добавляю настраиваемое действие:
-(IBAction)pushPage
{
NSLog(@"push page");
SecondViewController *secondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
[UIView beginAnimations:@"animation" context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.navigationController.view cache:NO];
[self.navigationController pushViewController:secondView animated:NO];
[UIView commitAnimations];
[secondView release];
}
В SecondView у меня есть кнопка с действием:
-(IBAction)back
{
[imageAnimationIssueAppDelegate backPage];
}
Метод backPage
в AppDelegate:
-(void)backPage
{
NSLog(@"backPage");
[UIView beginAnimations:@"animation" context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:NO];
[self.navigationController popToRootViewControllerAnimated:NO];
[UIView commitAnimations];
}
ПРОБЛЕМА:
На RootView у меня UIImageView
с анимацией:
- (void)viewDidLoad
{
[super viewDidLoad];
animImage.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"1.png"],
[UIImage imageNamed:@"2.png"],
[UIImage imageNamed:@"3.png"],
[UIImage imageNamed:@"4.png"],
[UIImage imageNamed:@"3.png"],
[UIImage imageNamed:@"2.png"],
nil];
animImage.animationDuration = 0.5;
animImage.animationRepeatCount = 0;
}
Я запускаю его в viewDidAppear
:
- (void)viewDidAppear:(BOOL)animated
{
NSLog(@"First view - viewDidAppear");
[super viewDidAppear:animated];
[animImage startAnimating];
}
Я останавливаюсь в viewDidDisapear
:
- (void)viewDidDisappear:(BOOL)animated
{
NSLog(@"First view - viewDidDisappear");
[super viewDidDisappear:animated];
[animImage stopAnimating];
}
Когда я возвращаюсь из SecondView, анимация останавливается! Но [animImage isAnimating]
скажи YES
!
Он не запускается без обновления экрана - вы можете нажать кнопку внизу и увидеть его!
Это ошибка?
Анимация работает без пользовательских переходов.
Когда я устанавливаю animated:YES
для просмотра в режиме push или pop, анимация работает с пользовательскими переходами между представлениями.
Почему?
Есть ли простой способ обновить отображаемый вид для запуска анимации?