2013-05-11 4 views
-3

내비게이션 기반 응용 프로그램을 개발 중입니다. 이 응용 프로그램에서 나는 푸시 팝을위한 특별한 애니메이션을 원합니다.푸시 애니메이션 - 현재보기 및 다음보기에 대해 두 가지 다른 애니메이션이 필요합니다. - iPhone에서

currentViewController의 MoveOut 애니메이션과 nextViewController의 FadeIn 애니메이션이 필요합니다.

다음 코드를 사용했습니다. firstViewController의 MoveOut 애니메이션이 정상적으로 작동합니다. 그러나 나는 nextViewController에 대한 FadeIn 애니메이션을 얻을 수 없다.

- (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]; 
} 

지식 .....

답변

0

다음과 같은 코드를 사용한다을 공유하세요 ....... 저에게 ALSO POP에 대한 해결 방법을 알려주세요!

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];