shouldAutoRotate Method Not Called in iOS6

转自:http://stackoverflow.com/questions/13588325/shouldautorotate-method-not-called-in-ios6

参考1:http://stackoverflow.com/questions/21088956/supportedinterfaceorientations-not-called-with-ios-7

参考2:http://stackoverflow.com/questions/12775265/ios-6-shouldautorotate-is-not-being-called

If you have a Navigation Controller managing these views, the shouldAutorotate method won‘t be called. You would have to subclass UINavigationController and override methods shouldAutorotate andsupportedIntervalOrientations.

From the docs:

Now, iOS containers (such as UINavigationController) do not consult their children to determine whether they should autorotate

Edit-----

As mentioned below by Lomax, subclassing UINavigationController is discouraged by Apple. You should try a category instead (this SO question explains it well):

@implementation UINavigationController
-(BOOL)shouldAutorotate
{
    // your code
}

-(NSUInteger)supportedInterfaceOrientations
{
    (...)
}

@end
时间: 2024-12-18 03:58:04

shouldAutoRotate Method Not Called in iOS6的相关文章

Mac cocos2d-x 3.8 设置横屏/竖屏

使用命令,新创建一个cocos2d-lua的项目,名为Demo,命令如下: cocos new Demo -p com.demo.org -l lua -d /Users/用户名/Documents/cocos2d-x-3.8.1/projects 创建成功后,然后使用Xcode打开../projects/Demo/frameworks/runtime-src/proj.ios_mac/Demo.xcodeproj 运行项目,发现是横屏的窗口,然而,我想要竖屏的窗口,其实现步骤如下: (1) 打

ios开发-cocos2d-x适配iphone6

好久没弄cocos2d-x了.今天闲着蛋疼重新玩了下. 简单说下自己解决iphone5适配的问题,方法很笨,但是挺简单的. 1.在ios目录下的RootViewController.mm文件中加入如下代码 [cpp] view plaincopy // Override to allow orientations other than the default portrait orientation. // This method is deprecated on ios6 - (BOOL)sh

cocos2d-x 3.1.1 学习笔记[21]cocos2d-x 创建过程

文章出自于  http://blog.csdn.net/zhouyunxuan RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewController { } - (BOOL) prefersStatusBarHidden; @end RootViewController.cpp #import "RootViewController.h" #import &

UIWebView 中JavaScript 与 Objective-C 通信

iOS7 之前 Objective-C -> JavaScript UIWebView对象有以下方法 - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script 该方法能够执行一段JavaScript字符串, 并返回字符串类型的返回值. 例如: UIWebView *webView = [[UIWebView alloc] init]; // result == @"3" NSString *re

iOS6、7、8、9新特性总汇和适配说明

转自:http://blog.6ag.cn/1195.html iOS6新特性 一.关于内存警告 ios6中废除了viewDidUnload,viewWillUnload这两个系统回调,收到内存警告时在didReceiveMemoryWarning中进行相关的处理. Crayon Syntax Highlighter v2.7.1 - (void)viewDidUnload { [super viewDidUnload]; // 处理 ios6 以下的系统内存警告系统回调消息 } // 这里处理

iOS6、7、8、9新特性汇总和适配说明

iOS6新特性 一.关于内存警告 ios6中废除了viewDidUnload,viewWillUnload这两个系统回调,收到内存警告时在didReceiveMemoryWarning中进行相关的处理. 二.关于屏幕旋转 同样ios6 废除了shouldAutorotateToInterfaceOrientation这个旋转屏幕的设置接口. 必须在两个新接口中设置旋转属性:shouldAutorotate.supportedInterfaceOrientations. 收到旋转事件后的处理,同样

iOS6 及其以上版本自动旋转、手动强制旋转方案及布局适配

1.布局适配方式 本文不讨论哪种布局适配方式最好,此处使用的是 Masonry 纯代码布局适配.(Masonry 底层就是 AutoLayout 的 NSLayoutConstraint) 2.iOS 方向枚举类 // 三维设备方向 typedef NS_ENUM(NSInteger, UIDeviceOrientation) { UIDeviceOrientationUnknown, UIDeviceOrientationPortrait, // Device oriented vertica

[_UIAlertShimPresentingViewController shouldAutorotate] is returning YES解决方法

今天做开发的时候遇到一个很大的问题,就是不需要屏幕的旋转,所以我在UINavigationController中设置了屏幕的方向,但是在UIAlertView提示的地方出现这样的错误: Terminating app due to uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason: 'Supported orientations has no common orientation with the appl

iOS6 自适应旋转处理

一.iOS6之后UIViewController 旋转处理 1.view controller 是否支持自动旋转 - (BOOL)shouldAutorotate; 2.view controller 支持哪几种 - (NSUInteger)supportedInterfaceOrientations; 在UIApplication中定义了屏幕方向相关的枚举 UIInterfaceOrientationMask枚举类型 定义了支持的屏幕类型 UIInterfaceOrientation枚举类型