`

iOS 6 设备转向问题

    博客分类:
  • ios
阅读更多

iOS 6 对设备转向时 View Rotations 的处理完全不一样了

 

Handling View Rotations

In iOS 6, your app supports the interface orientations defined in your app’s Info.plist file. A view controller can override thesupportedInterfaceOrientations method to limit the list of supported orientations. Generally, the system calls this method only on the root view controller of the window or a view controller presented to fill the entire screen; child view controllers use the portion of the window provided for them by their parent view controller and no longer participate in directly in decisions about what rotations are supported. The intersection of the app’s orientation mask and the view controller’s orientation mask is used to determine which orientations a view controller can be rotated into.

You can override the preferredInterfaceOrientationForPresentation for a view controller that is intended to be presented full screen in a specific orientation.

In iOS 5 and earlier, the UIViewController class displays views in portrait mode only. To support additional orientations, you must override the shouldAutorotateToInterfaceOrientation: method and return YES for any orientations your subclass supports. If the autoresizing properties of your views are configured correctly, that may be all you have to do. However, the UIViewController class provides additional hooks for you to implement additional behaviors as needed. Generally, if your view controller is intended to be used as a child view controller, it should support all interface orientations.

When a rotation occurs for a visible view controller, the willRotateToInterfaceOrientation:duration:,willAnimateRotationToInterfaceOrientation:duration:, and didRotateFromInterfaceOrientation: methods are called during the rotation. The viewWillLayoutSubviews method is also called after the view is resized and positioned by its parent. If a view controller is not visible when an orientation change occurs, then the rotation methods are never called. However, theviewWillLayoutSubviews method is called when the view becomes visible. Your implementation of this method can call thestatusBarOrientation method to determine the device orientation.

Note: At launch time, apps should always set up their interface in a portrait orientation. After theapplication:didFinishLaunchingWithOptions: method returns, the app uses the view controller rotation mechanism described above to rotate the views to the appropriate orientation prior to showing the window.

 

 

 

 

但假如你最上层的viewcontroller 是个tabviewcontroller又不一样了   你必须

 

 @interface MyTabBarController : UITabBarController
            {
            }
            @end

            @implementation MyTabBarController

            // put your shouldAutorotateToInterfaceOrientation and other overrides here        
            - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
                return (interfaceOrientation == UIInterfaceOrientationPortrait);
            }

            - (NSUInteger)supportedInterfaceOrientations{ 
                return UIInterfaceOrientationMaskPortrait; 
            } 

        @end

参见: http://stackoverflow.com/questions/12410031/the-new-ios-rotations-supportedinterfaceorientations-doesnt-work

 

If your ViewController is a child of a UINavigationController or UITabBarController, then it is the parent that is your problem. You might need to subclass that parent view controller, just overriding those InterfaceOrientation methods as you've shown in your question

分享到:
评论

相关推荐

    获取ios设备号

    "获取ios设备号"这个主题涉及到的主要知识点包括UDID(Unique Device Identifier)、UUID(Universally Unique Identifier)、广告标识符(IDFA,Identifier for Advertising)以及SSKeychain库的使用。 1. UDID...

    IOS获取设备MAC地址及MD5加密

    在iOS设备上,MAC地址主要用于Wi-Fi和蓝牙通信。然而,由于隐私考虑,自iOS 7以后,Apple不再允许直接获取硬件的MAC地址,而是提供了一个随机生成的“私有MAC地址”或者称为“设备唯一标识符(IDFV)”。 尽管如此...

    iOS 6 in Practice

    2. **地图服务**: iOS 6中苹果自家的地图应用取代了Google Maps,提供了包括3D视图、实时路况和转向导航等新功能,但初期存在一些定位和数据问题。 3. **Siri更新**: Siri智能语音助手得到了显著增强,能够提供体育...

    iOS6英文原版教程《iOS 6 By Tutorials》

    接下来,教程转向了iOS 6中的集合视图UICollectionView的使用方法,分别在"Beginning UICollectionView"和"Intermediate UICollectionView"章节中,介绍了UICollectionView的基础和进阶知识。UICollectionView是用于...

    IOS6实践指南 源代码

    2. **Auto Layout**: 自动布局是iOS6中的一个重大改进,它允许开发者在不同屏幕尺寸和设备上创建适应性强的用户界面。通过分析源代码,你可以学习到如何设置约束并实现响应式布局。 3. **MapKit更新**: iOS6对...

    ios6ShareDemo

    【标题】"ios6ShareDemo" 是一个针对iOS 4.5和iOS 6.0平台的...这个Demo项目不仅对初学者有帮助,也对有经验的开发者有价值,因为它可以作为一个快速参考,以便在需要向旧版iOS设备提供分享功能时,能快速回顾并实施。

    Programming.iOS.6

    这意味着书中涉及的知识点、API、以及开发工具都将基于iOS 6版本,对于升级或转向iOS 6开发的程序员来说,这本书可以作为重要的学习资源。 书中部分内容列出了目录和版面设计的信息,如封面设计师、版式设计师、...

    iOS 6实践指南与源码

    iOS 6是苹果公司为iPhone、iPad以及iPod touch设备推出的操作系统版本,发布于2012年。这个版本带来了许多新特性和改进,对于iOS开发者来说,了解并掌握这些内容是至关重要的。这份资料由一位拥有20年开发经验的专家...

    ios6开发进阶与实战源码

    在iOS开发领域,iOS 6是一个重要的里程碑,它引入了许多新特性和改进,为开发者提供了更丰富的工具和功能。这个“iOS 6开发进阶与实战源码”旨在帮助开发者深入理解并掌握这一版本的iOS开发技巧。源码通常包含了实际...

    ios Apprentice

    第四章节则转向模型-视图-控制器(MVC)设计模式,这是iOS开发中的核心设计原则。你会学习如何创建数据模型,理解控制器的作用,以及如何在模型和视图之间进行通信。此外,这一章还会涉及到数据持久化,如使用...

    PDF-Ios6ProgrammingCookbook-英文版.rar

    1. **iOS 6 SDK**:iOS 6是Apple在2012年发布的一个操作系统版本,它带来了许多新特性,如Passbook、转向地图服务、Siri的扩展等。SDK(Software Development Kit)是开发iOS应用的工具集合,包括Xcode IDE、模拟器...

    ios一套成,bios

    接着,我们转向iOS,这是苹果公司为其移动设备(如iPhone、iPad和iPod Touch)开发的操作系统。iOS以其用户友好、安全性高和应用生态丰富而著称。“ios一套成”可能指的是iOS的完整开发、调试或学习资源。虽然没有...

    ios地图定位导航

    iOS设备支持GPS、Wi-Fi、蜂窝数据和iBeacon等多种定位技术,通过Core Location框架提供服务。开发者可以使用Core Location框架获取用户的位置信息,包括经纬度坐标、海拔、速度和方向。为了保护用户隐私,iOS会要求...

    代码模拟点击反控iOS页面

    首先,iOS的UIAutomation是Apple Instruments工具的一部分,它允许开发者编写JavaScript脚本来控制iOS设备上的应用程序,进行自动化测试。通过这个框架,我们可以获取屏幕元素的信息,如位置、大小等,并模拟用户的...

    关于IOS_APNS推送消息(iphone端+服务端)

    在iOS应用开发中,Apple Push Notification service (APNs) 是苹果公司提供的一个关键服务,用于向用户的iPhone设备发送远程通知。这些通知可以是系统级别的消息,也可以是应用程序自定义的内容,比如新消息提醒或者...

    iOS 广告视图 无限循环

    6. **广告网络的问题**:有时问题可能出在广告网络本身,比如服务器故障或API接口临时性问题。此时,检查广告网络的官方文档和开发者社区,看是否有其他开发者报告类似问题。 解决“iOS 广告视图 无限循环”问题...

    各种IOS的特效动画

    在iOS设备中,这些传感器可以检测到设备的倾斜、翻转和旋转,从而改变屏幕方向或者触发特定的动画效果。例如,当用户将设备从横屏转向竖屏时,许多应用会自动调整布局以适应新的方向,这就是重力感应的应用之一。 ...

    传智播客iOS6免费公开课程-照相机拍照图片库获取照片

    本课程聚焦于“传智播客iOS6免费公开课程”,探讨如何利用iOS SDK来实现拍照和从图片库获取照片的功能。 首先,我们需要了解iOS中的AVFoundation框架,它是处理音频和视频的核心框架,包括照相功能。在iOS6中,我们...

Global site tag (gtag.js) - Google Analytics