iOS6 中未调用 shouldAutoRotate 方法

shouldAutoRotate Method Not Called in iOS6(iOS6 中未调用 shouldAutoRotate 方法)
本文介绍了iOS6 中未调用 shouldAutoRotate 方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我有一个 UIViewController 详细视图,它是从 UINavigationController 中的 UITableView 推送的.在 UIViewController 我添加了一些子视图(例如 UITextViewUIImageView).

I have a UIViewController detail view which is pushed from a UITableView in a UINavigationController. In the UIViewController I add a number of subviews (e.g a UITextView, UIImageView).

iOS5 中,如果我的图片视图被放大,我使用此代码停止自动旋转:

In iOS5 I used this code to stop autorotation if my picture view was enlarged :

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
if (scrollView.isZoomed) {
    return NO;
}
else {
    return YES;
}

}

我正在尝试在 iOS6 下使用:

I am trying to achieve the same thing under iOS6 using :

- (BOOL)shouldAutorotate {
return FALSE;
}

然而,这个方法永远不会被调用,并且应用会继续旋转.

However this method is never called and the app continues rotating.

谁能帮忙?

推荐答案

如果您有管理这些视图的导航控制器,则不会调用 shouldAutorotate 方法.您必须继承 UINavigationController 并覆盖方法 shouldAutorotatesupportedIntervalOrientations.

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 and supportedIntervalOrientations.

来自文档:

现在,iOS 容器(例如 UINavigationController)不会咨询它们的子容器来确定它们是否应该自动旋转

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

编辑-----

正如 Lomax 下面提到的,Apple 不鼓励子类化 UINavigationController.您应该尝试一个类别(this SO question解释得很好):

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

这篇关于iOS6 中未调用 shouldAutoRotate 方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Swift alert view with OK and Cancel: which button tapped?(带有 OK 和 Cancel 的 Swift 警报视图:点击了哪个按钮?)
Facebook Requests Dialog: Frictionless Requests in native iOS app possible?(Facebook 请求对话框:本机 iOS 应用程序中的无摩擦请求可能吗?)
Difference between iPhone Simulator and Android Emulator(iPhone模拟器和Android模拟器之间的区别)
Editing locked files from a CocoaPods framework(从 CocoaPods 框架编辑锁定的文件)
iOS 6 (iPhone/iPad) Image Upload quot;Request Body Stream Exhaustedquot; with NTLM/Windows Authentication(iOS 6 (iPhone/iPad) 图片上传“请求正文流用尽使用 NTLM/Windows 身份验证)
Can#39;t change target membership visibility in Xcode 4.5(无法更改 Xcode 4.5 中的目标成员身份可见性)