视图ViewController之间的切换及动画设置
2014-10-08 10:21
639 查看
视图ViewController之间的切换方式有很多,其中最常用的有以下三种:导航UINavigationController,模态视
presentModalViewController,控制栏UITabBarController
一、导航控制器UINavigationController这种切换主要适用于有层次逻辑性的ViewController之间
//切换一、NavigationController的push
[self.navigationController
pushViewController:publishVC animated:YES];
[self
setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
说明:
UIViewController自身之间的调用:[self presentModalViewController:UIViewController animated:YES];
对应的返回操作函数:[self dismissModalViewControllerAnimated:YES];这里的self代表的是UIViewController自己。
其可设置四种动画模式:
case 0:
[ctrl setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; //底部向上 默认的动画方式
break;
case 1:
[ctrl setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; //渐变
break;
case 2:
[ctrl setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; //翻转
break;
case 3:
[ctrl setModalTransitionStyle:UIModalTransitionStylePartialCurl]; //翻半页
break;
default:
[ctrl setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; //底部向上 默认的动画方式
break;
二、模态视图切换presentModalViewController,对应的返回函数:dismissModalViewController
他的切换动画可以有一下两种方法设置:
//切换二、presentVC的ModalTransiionStyle和ModalPresentationStyle切换
[publishVC setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[publishVC setModalPresentationStyle:UIModalPresentationCurrentContext];
[self
presentViewController:publishVC animated:YES
completion:nil];
//切换三、presentVC的自定义
CATransition * animation = [CATransition
animation];
[animation
setDuration:0.5];
[animation setSubtype:kCATransitionFromLeft];
[animation
setType:kCATransitionPush];
[animation setTimingFunction:[CAMediaTimingFunction
functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[publishVC.view
layer]addAnimation:animation
forKey:@"SwitchToView" ];
[self
presentViewController:publishVC animated:NO
completion:nil];
Controller调用了返回函数,如dismiss,pop等等,那么就会被清理掉。
备注:如果Controller或view中有线程或者定时器之类的动画操作如果没有结束那么这个Controller或view就会出现内存泄露了。
三、UITabBarContrller其也是继承于UIViewController,主要是做具有并行逻辑特点的ViewController之间的切换。
UITabBarContrller对象有一个属性selectedIndex,设置初始时默认展示的ViewController。
而当点击tabBarItem时触发切换操作 都会回调UITabBarControllerDelegate中的一个方法
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *) viewController
presentModalViewController,控制栏UITabBarController
一、导航控制器UINavigationController这种切换主要适用于有层次逻辑性的ViewController之间
//切换一、NavigationController的push
[self.navigationController
pushViewController:publishVC animated:YES];
[self
setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
说明:
UIViewController自身之间的调用:[self presentModalViewController:UIViewController animated:YES];
对应的返回操作函数:[self dismissModalViewControllerAnimated:YES];这里的self代表的是UIViewController自己。
其可设置四种动画模式:
case 0:
[ctrl setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; //底部向上 默认的动画方式
break;
case 1:
[ctrl setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; //渐变
break;
case 2:
[ctrl setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; //翻转
break;
case 3:
[ctrl setModalTransitionStyle:UIModalTransitionStylePartialCurl]; //翻半页
break;
default:
[ctrl setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; //底部向上 默认的动画方式
break;
二、模态视图切换presentModalViewController,对应的返回函数:dismissModalViewController
他的切换动画可以有一下两种方法设置:
//切换二、presentVC的ModalTransiionStyle和ModalPresentationStyle切换
[publishVC setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[publishVC setModalPresentationStyle:UIModalPresentationCurrentContext];
[self
presentViewController:publishVC animated:YES
completion:nil];
//切换三、presentVC的自定义
CATransition * animation = [CATransition
animation];
[animation
setDuration:0.5];
[animation setSubtype:kCATransitionFromLeft];
[animation
setType:kCATransitionPush];
[animation setTimingFunction:[CAMediaTimingFunction
functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[publishVC.view
layer]addAnimation:animation
forKey:@"SwitchToView" ];
[self
presentViewController:publishVC animated:NO
completion:nil];
Controller调用了返回函数,如dismiss,pop等等,那么就会被清理掉。
备注:如果Controller或view中有线程或者定时器之类的动画操作如果没有结束那么这个Controller或view就会出现内存泄露了。
三、UITabBarContrller其也是继承于UIViewController,主要是做具有并行逻辑特点的ViewController之间的切换。
UITabBarContrller对象有一个属性selectedIndex,设置初始时默认展示的ViewController。
而当点击tabBarItem时触发切换操作 都会回调UITabBarControllerDelegate中的一个方法
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *) viewController
相关文章推荐
- 【iOS开发-24】导航控制器下不同视图控制器之间切换:利用CATrasition和view的layer层来实现自定义的动画效果
- Swift - 集成app启动页广告,切换rootViewController,支持LaunchImage和LaunchScreen.storyboard,支持GIF图片显示,支持视图过渡动画
- 带有下划线和动画效果的视图切换(addChildViewController)
- ViewController 之间设置转场动画
- iOS7新特性 ViewController转场切换(二) 系统视图控制器容器的切换动画---push pop present dismis
- ViewController之间的切换动画
- iOS开发导航控制器下不同视图控制器之间切换:利用CATrasition和view的layer层来实现自定义的动画效果
- iOS7新特性 ViewController转场切换(二) 系统视图控制器容器的切换动画---push pop present
- 视图(view)、视图控制器(view controller)之间的数量关系
- iPhone开发之ModalViewController视图切换
- Objective-C ,ios,iphone开发基础:多个视图(view)之间的切换2,使用导航栏控制,以及视图之间传值。
- IOS ViewController切换动画以及如何返回
- Objective-C ,ios,iphone开发基础:多个视图(view)之间的切换2,使用导航栏控制,以及视图之间传值。
- iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍)
- UIViewController与UISplitViewController之间的切换
- presentModalViewController 设置动画效果
- ViewController之间跳转动画效果
- [IOS视图切换]MPFlipViewController
- iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍)
- UINavigationController切换controller动画设置