什么时候rootViewController至tabbarController时刻,控制屏幕旋转法
2015-10-17 17:20
375 查看
于ios6后,ios系统改变了屏幕旋转的方法,假设您想将屏幕旋转法,在需求rootvc里面制备,例如
当root为nav时,你要建立一个nav的子类,进行改动,假设是vc时,直接能够在vc里进行改动,网上已经有非常多的样例了,但假设是tabbar里面嵌套这非常多nav和vc,nav里又有vc我们要怎么弄呢,以下是我调研的一些方法,就是用几个category对nav和tabbarController进行类别的编写,让他们能够分别相应子视图的旋转方向
UITabBarController+autoRotate
UINavigationController+autoRotate.h
參考文章:IOS6屏幕旋转具体解释(自己主动旋转、手动旋转、兼容IOS6之前系统) , 在IOS应用中从竖屏模式强制转换为横屏模式 , http://stackoverflow.com/questions/12522903/uitabbarcontroller-rotation-issues-in-ios-6
UIViewController *viewCtrl = [[UIViewController alloc] init]; UINavigationController *navCtrl = [[UINavigationController alloc] initWithRootViewController:viewCtrl]; if ([window respondsToSelector:@selector(setRootViewController:)]) { self.window.rootViewController = navCtrl; } else { [self.window addSubview:navCtrl.view]; }
当root为nav时,你要建立一个nav的子类,进行改动,假设是vc时,直接能够在vc里进行改动,网上已经有非常多的样例了,但假设是tabbar里面嵌套这非常多nav和vc,nav里又有vc我们要怎么弄呢,以下是我调研的一些方法,就是用几个category对nav和tabbarController进行类别的编写,让他们能够分别相应子视图的旋转方向
UITabBarController+autoRotate
@interface UITabBarController (autoRotate) -(BOOL)shouldAutorotate; - (NSUInteger)supportedInterfaceOrientations; @end #import "UITabBarController+autoRotate.h" @implementation UITabBarController (autoRotate) - (BOOL)shouldAutorotate { return [self.selectedViewController shouldAutorotate]; } - (NSUInteger)supportedInterfaceOrientations { return [self.selectedViewController supportedInterfaceOrientations]; } @end
UINavigationController+autoRotate.h
@interface UINavigationController (autoRotate) -(BOOL)shouldAutorotate; - (NSUInteger)supportedInterfaceOrientations; @end @implementation UINavigationController (autoRotate) - (BOOL)shouldAutorotate { return [self.visibleViewController shouldAutorotate]; } - (NSUInteger)supportedInterfaceOrientations { return [self.visibleViewController supportedInterfaceOrientations]; } @end
UIViewController1.m - (BOOL)shouldAutorotate { return NO; } - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait;; } UIViewController2.m - (BOOL)shouldAutorotate { return YES; } - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskAll; }
參考文章:IOS6屏幕旋转具体解释(自己主动旋转、手动旋转、兼容IOS6之前系统) , 在IOS应用中从竖屏模式强制转换为横屏模式 , http://stackoverflow.com/questions/12522903/uitabbarcontroller-rotation-issues-in-ios-6
相关文章推荐
- 20151017判断闰年的最简洁算法
- 你不知道的JavaScript--Item9 call(),apply(),bind()与回调
- Android中显示GIF动画的实现代码
- Java:String和Date、Timestamp之间的转换
- SSIS可靠性和扩展性—事务
- 笨办法学python的笔记之四(ex27)
- 在同一台服务器上配置多个Tomcat
- PHP-Redis扩展使用手册(一)
- 读《大道至简》第三章有感
- 你不知道的JavaScript--Item9 call(),apply(),bind()与回调
- java十二星座 (快来测试你是什么星座吧)
- 学生管理系统源码
- 什么是谋略?
- tomcat如何配置环境变量
- keeplive+lvs
- Quartz四 按固定间隔一直执行
- MYSQL IF 和 IFNULL 函数 IF(expr1,expr2,expr3) IFNULL(expr1,expr2)
- We are doomed, and RPC does not help
- Jquery闪烁提示特效
- dom响应事件