若要使用其他效果的過場動畫時,可以搭配 CATransition 這個類別來使用。
需要的 framework:QuartzCore
使用方法:
CATransition *animation = [CATransition animation];
[animation setDuration:0.3];
[animation setType:@"oglFlip"];
[animation setSubtype:kCATransitionFromRight];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]];
UIViewController *viewVC = [[UIViewController alloc] initWithNibName:@"UIViewController_iPhone" bundle:nil];
[self.navigationController pushViewController: viewVC animated:NO];
[self.navigationController.view.layer addAnimation:animation forKey:nil];
[viewVC release];
CATransition *animation = [CATransition animation];
[animation setDuration:0.3];
[animation setType:@"oglFlip"];
[animation setSubtype:kCATransitionFromLeft];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]];
[self.navigationController.view.layer addAnimation:animation forKey:nil];
[self.navigationController popViewControllerAnimated:YES];
PS:要特別注意,push 與 pop ViewController 的順序有不同。