更改navigationController push和pop界面切换动画

For Push:

MainView *nextView=[[MainView alloc] init];

[UIView  beginAnimations:nil context:NULL];

[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

[UIView setAnimationDuration:0.75];

[self.navigationController pushViewController:nextView animated:NO];

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];

[UIView commitAnimations];

[nextView release];

TwoDView *twoD  =[[TwoDView alloc]init];

    CATransition *animation = [CATransition animation];

    [animation setDuration:0.4];

    [animation setType: kCATransitionPush];

    [animation setSubtype: kCATransitionFromLeft];

    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]];

    [self.navigationController pushViewController:twoD animated:NO];

    [self.navigationController.view.layer addAnimation:animation forKey:nil];

    [twoD release];

For Pop:

方法一:

[UIView  beginAnimations:nil context:NULL];

[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

[UIView setAnimationDuration:0.75];

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];

[UIView commitAnimations];



[UIView beginAnimations:nil context:NULL];

[UIView setAnimationDelay:0.375];

[self.navigationController popViewControllerAnimated:NO];

[UIView commitAnimations];

方法二:

可实现左右滑动动画,可设置滑动方向。

CATransition* transition = [CATransition animation];

transition.duration = 0.5;

transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

transition.type = kCATransitionFade; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade

//transition.subtype = kCATransitionFromTop; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom

[self.navigationController.view.layer addAnimation:transition forKey:nil];

[[self navigationController] popViewControllerAnimated:NO];

你可能感兴趣的:(controller)