1.在AppDelegate中添加如下代码:

(1)  self.window.rootViewController = self.iNavController;

(2)//    [self.window addSubview:self.iNavController.view];

在iOS6.0 中只能使用(1)方法,如果使用(2)再去设置屏幕旋转会不起作用的。iOS6.0以下则不会出现上述问题。

2.屏幕旋转

(1)将屏幕旋转统一写到rootViewController中。例如:上面(1)中rootViewController是UINavigationController,则将旋转写到

UINavigationController中。为UINavigationController添加类别,代码如下:

- (BOOL) shouldAutorotate

{

//全部调用self.topViewController,就是返回当前呈现出来的viewController里面的设置

return self.topViewController.shouldAutorotate;

}

- (NSUInteger)supportedInterfaceOrientations

{

return self.topViewController.supportedInterfaceOrientations;

}

(2)支持全部方向的旋转

iOS6.0需要下面三个方法,代码如下:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation

{

return (toInterfaceOrientation != UIInterfaceOrientationMaskPortraitUpsideDown);

}

- (BOOL)shouldAutorotate

{

return YES;

}

- (NSUInteger)supportedInterfaceOrientations

{

return UIInterfaceOrientationMaskAllButUpsideDown;

}

(3)禁止屏幕旋转

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation

{

return (toInterfaceOrientation == UIInterfaceOrientationPortrait);

}

- (BOOL)shouldAutorotate

{

return NO;

}

- (NSUInteger)supportedInterfaceOrientations

{

return UIInterfaceOrientationMaskPortrait;//只支持这一个方向(正常的方向)

}

(4) 如果viewCtrl 是  presentModalViewController 到 viewCtrl3,那么viewCtrl3的旋转设置就不在navCtrl里面了!如果presentModalViewController的viewController是navController、tabbarController包装过的viewCtrl3,那么就应在新包装的navController、tabbarController里面设置,如果是直接presentModalViewController到viewCtrl3,那么就在viewCtrl3里面设置

3.屏幕旋转基本方法

//视图旋转之前自动调用  
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 
    NSLog(@"视图旋转之前自动调用"); 

//视图旋转方向发生改变时会自动调用  
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 

    NSLog(@"视图旋转方向发生改变时会自动调用"); 

//视图旋转完成之后会自动调用  
 
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { 
    NSLog(@"视图旋转完成之后自动调用"); 
}

//视图旋转之前自动调用
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    NSLog(@"视图旋转之前自动调用");
}
//视图旋转方向发生改变时会自动调用
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    NSLog(@"视图旋转方向发生改变时会自动调用");
}
//视图旋转完成之后会自动调用

-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    NSLog(@"视图旋转完成之后自动调用");
}

ios6 屏幕旋转总结相关推荐

  1. UIDeviceOrientation 和 UIInterfaceOrientation 设备旋转的用法 (实例)  和 IOS6屏幕旋转详解

    1. UIDeviceOrientation 和 UIInterfaceOrientation 设备旋转的用法 (实例) 博客分类: IOS / Objective-C UIDeviceOrienta ...

  2. IOS6屏幕旋转详解(自动旋转、手动旋转、兼容IOS6之前系统)

    转自 http://blog.csdn.net/zzfsuiye/article/details/8251060 概述: 在iOS6之前的版本中,通常使用 shouldAutorotateToInte ...

  3. iOS6下关于屏幕旋转的控制

    之前做了一个应用,但由于整应用界面个都是竖屏,不允许横屏,所以一直没有关注这个,昨天开发一个图片预览的类库(类似系统的查看图片),其中一个特性当然需要支持横屏,所以就压找了一下资料,之前已经听闻在屏幕 ...

  4. iOS6的控制屏幕旋转技巧

    在iOS5.1 和 之前的版本中, 我们通常利用 shouldAutorotateToInterfaceOrientation: 来单独控制某个UIViewController的旋屏方向支持,比如: ...

  5. 关于屏幕旋转设置:iOS5、iOS6及iOS7

    关于屏幕旋转设置: iOS5调用 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOri ...

  6. iOS6以上屏幕旋转详解

    屏幕旋转的研究理由: 因为本人从事视频类的iOS开发工作,经常项目中经常会遇到需要在不同的页面对屏幕方向进行控制,例如正常的列表页面都只支持竖屏不能旋转,而播放页面需要能够控制旋转 : - 手动点击全 ...

  7. iOS屏幕旋转 浅析

    一.两种orientation 了解屏幕旋转首先需要区分两种orientation 1.device orientation 设备的物理方向,由类型UIDeviceOrientation表示,当前设备 ...

  8. ios 旋转屏幕试图切换_总结iOS App开发中控制屏幕旋转的几种方式

    在iOS6之前的版本中,通常使用 shouldAutorotateToInterfaceOrientation 来单独控制某个UIViewController的方向,需要哪个viewControlle ...

  9. iPhone屏幕旋转机制详解

    主要说一下本人对iOS6.0及以前版本中对屏幕旋转的操作:包括重力感应旋转和强制旋转. 首先说一下重力感应引起的屏幕旋转. 在iOS6.0以前,只需要UIViewController的子类重载 - ( ...

最新文章

  1. HTML5 INPUT placeholder及兼容性处理
  2. Gym-100889B Backward and Forward
  3. shell 编程整合
  4. 史上最全Redis面试题及答案。
  5. Nginx 502 Bad Gateway 错误的原因及解决方法
  6. 前端遍历列表生成表格_图书作者的演练-创建列表页和添加表单框-flask
  7. Java NIO概述(1)
  8. python是什么-什么是Python?最全的python百科
  9. 想要学习C++,到底能从事哪种行业?
  10. xxxxxxxxxccccxcc
  11. 至少出现k次重复的子串的最大长度
  12. 电动按摩帖芯片FH8B23S16B单片机为什么这么多人用?
  13. python中spider的用法_Python爬虫从入门到放弃(十五)之 Scrapy框架中Spiders用法
  14. Citespace(十一)---对图谱中Q值和S值的说明—来自《引文空间分析原理与应用》p24
  15. CorelDraw绘图技巧十九招
  16. ios 简书 获取通讯录信息_ios 各种权限整理
  17. PHP脚本定时任务实现及crontab实现定时任务
  18. linux系统安装s3fs,利用s3fs 将 s3 bucket 挂载到Linux目录
  19. DIV常用的几种边框样式!(转)
  20. Syslog-ng3.5 mysql 日志服务器

热门文章

  1. 部门来了个测试工程师,一副小毛孩样,本以为很菜,谁想到...
  2. 湖北2022农民丰收节 国稻种芯:麻城启动王忠林宣布活动
  3. Redis 缓存回收的7种策略volatile设置过期时间及allkeys所有数据范围内
  4. linux-Ubuntu-centos-deepin操作系统网卡驱动Realtek-RTL8111-RTL8168-rtlwifi-rtl8188-8192-8723-8821-免费下载---收集到的
  5. 搞了一个星期的扫码收款, 总结感悟
  6. WSTMart 国内开源商城系统佼佼者
  7. 群贤路附近哪有计算机学校,群贤路口附近展览馆、会展中心
  8. dva 底层框架构建
  9. 【零信任落地案例】启明星辰中国移动某公司远程办公安全接入方案
  10. ubuntu的防火墙 ufw