【Modal跳转界面样式】
Modal视图跳转的时候,默认界面是从从下往上出现的。这样其实非常的单调。苹果也给我们提供了几种不同的样式。并且注意,storyboard中的界面如果没有使用segue进行跳转的话,跳转代码中要使用
instantiateViewControllerWithIdentifier这个方法来进行绑定。
- - (IBAction)buttonpressed:(id)sender {
-
- UIViewController *second = [[UIViewController alloc ]init];
- second = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
- second.modalTransitionStyle = UIModalTransitionStylePartialCurl;
-
- [self presentViewController:second animated:true completion:nil];
-
- }
其中modalTransitionStyle共有四种:
UIModalTransitionStyleCoverVertical:从下往上弹出界面;
UIModalTransitionStyleFlipHorizontal:前后翻转翻页;
UIModalTransitionStyleCrossDissolve:淡入淡出效果;
UIModalTransitionStylePartialCurl:书本翻页效果;
【Push跳转界面样式】
Push进行界面跳转的时候默认是从右向左进行切换的。我们也有办法进行Style的切换。实现代码如下:
- - (IBAction)buttonPressed:(id)sender {
-
-
- CATransition *animation = [CATransition animation];
- [animation setDuration:1];
-
- [animation setType: kCATransitionMoveIn];
-
- [animation setSubtype: kCATransitionFromBottom];
-
- [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]];
-
- SecondViewController *second = [[SecondViewController alloc] init];
-
- second = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
- [self.navigationController pushViewController:second animated:false];
- [self.navigationController.view.layer addAnimation:animation forKey:nil];
-
- }
可以设定的参数如下:
Type:
kCATransitionFade ;kCATransitionMoveIn ;kCATransitionPush ;kCATransitionReveal ;
SubType:
kCATransitionFromRight;kCATransitionFromLeft;kCATransitionFromTop;kCATransitionFromBottom;
TimingFunction:
kCAMediaTimingFunctionLinear;kCAMediaTimingFunctionEaseIn;kCAMediaTimingFunctionEaseOut;kCAMediaTimingFunctionEaseInEaseOut;kCAMediaTimingFunctionDefault;
以上的参数可以可以相互组合,就会有不同的效果。