shouldAutoRotate Method Not Called in iOS6(iOS6 中未调用 shouldAutoRotate 方法)
问题描述
我有一个 UIViewController
详细视图,它是从 UINavigationController
中的 UITableView
推送的.在 UIViewController
我添加了一些子视图(例如 UITextView
、UIImageView
).
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 并覆盖方法 shouldAutorotate 和 supportedIntervalOrientations.
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 方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:iOS6 中未调用 shouldAutoRotate 方法


- Android - 拆分 Drawable 2022-01-01
- 想使用ViewPager,无法识别android.support.*? 2022-01-01
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- android 4中的android RadioButton问题 2022-01-01
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01
- Android viewpager检测滑动超出范围 2022-01-01
- 用 Swift 实现 UITextFieldDelegate 2022-01-01
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01