1. 首先要明确的是,不使用pushViewController的默认动画,所以在调用这个函数时,要将animated设置为NO.
2. 使用普通的来CATransition实现转换效果,代码如下:
01 |
CATransition *animation = [CATransition animation]; |
03 |
[animation setDuration:0.3]; |
05 |
[animation setType: kCATransitionMoveIn]; |
07 |
[animation setSubtype: kCATransitionFromTop]; |
09 |
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]]; |
10 |
[self.navigationController pushViewController:m_poseAddIssueViewController animated:NO]; |
11 |
[self.navigationController.view.layer addAnimation:animation forKey:nil]; |
- (IBAction)onClick{
secondView *mysec=[[secondView alloc] initWithNibName:@”secondView” bundle:nil];
mysec.view.frame = CGRectMake(0.0f, -480.0f, 320.0f, 960.0f);
[self.navigationController pushViewController:mysec animated:NO];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.3];
[UIView setAnimationDelegate:self];
//controller.view.center = CGPointMake(160.0f, 240.0f);
mysec.view.frame = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);
[UIView commitAnimations];
[mysec release];
}