2013-05-11 3 views
-3

Я занимаюсь разработкой навигационного приложения. В этом приложении мне нужны специальные анимации для Push Pop.Push анимации - я хочу две разные анимации для текущего вида и следующего вида - в iPhone

Я хочу анимацию MoveOut для анимации currentViewController и FadeIn для nextViewController.

Я использовал следующий код. Анимация MoveOut для firstViewController отлично работает. Но я не могу получить анимацию FadeIn для nextViewController.

- (IBAction)pushClick:(id)sender 
{ 
    SecondViewController * sec = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 

    CATransition *transitionMainView = [CATransition animation]; 
    transitionMainView.duration = 0.4; 
    transitionMainView.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
    transitionMainView.type = kCATransitionReveal; 
    transitionMainView.subtype = kCATransitionFromRight; 
    transitionMainView.delegate = self; 
    [self.navigationController.view.layer addAnimation:transitionMainView forKey:nil]; 

    CATransition *transitionSubView = [CATransition animation]; 
    transitionSubView.duration = 0.4; 
    transitionSubView.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
    transitionSubView.type = kCATransitionFade; 
    transitionSubView.subtype = kCATransitionFromLeft; 
    transitionSubView.delegate = self; 
    [sec.view.layer addAnimation:transitionSubView forKey:nil]; 

    [self.navigationController pushViewController:sec animated:NO]; 
} 

ПОЖАЛУЙСТА СКАЖИТЕ МНЕ РЕШЕНИЕ ДЛЯ POP ТАКЖЕ .......

Пожалуйста, поделитесь своими знаниями .....

ответ

0

вы должны использовать следующий код!

SecondViewController * sec = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 

    CATransition *transitionMainView = [CATransition animation]; 
    transitionMainView.duration = 0.4; 
    transitionMainView.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
    transitionMainView.type = kCATransitionReveal; 
    transitionMainView.subtype = kCATransitionFromRight; 
    transitionMainView.delegate = self; 
    [self.navigationController.view.layer addAnimation:transitionMainView forKey:nil]; 
    [self.navigationController pushViewController:sec animated:NO]; 
    sec.view.alpha = 0; 

    [UIView beginAnimations:@"animation" context:nil]; 
    [UIView setAnimationDuration:0.75]; 
    sec.view.alpha = 1; 
    [UIView commitAnimations]; 
Смежные вопросы