在我的应用程序中,我一直在使用现已弃用的 shouldAutoRotateToFace 方法。现在,当使用 iOS 6 模拟器时,我的所有子视图都旋转到纵向,而设备处于横向。有谁知道可能导致这种情况的原因?我已经尝试用supportedOrientations方法(或者你现在应该使用的任何方法)替换我的主视图控制器中的自动旋转。
问问题
2951 次
1 回答
7
如果您可以登录 Apple 开发论坛,请查看此线程。
基本上,这是对我有帮助的信息:
1.我必须window.rootViewController = mainViewController
进去
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
2.对于视图控制器
- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
不只是返回YES
,我必须添加
- (NSUInteger)supportedInterfaceOrientations
返回相同的值
3.新增
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft |
UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskPortraitUpsideDown);
}
到 mainViewController.m
4.新增
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft |
UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskPortraitUpsideDown);
}
到 appDelegate.m (我相信这是可选的,用于设置默认值,以防它们未在应用程序的 Info.plist 文件或单个视图控制器中指定)
因为我希望我的代码向后兼容回 3.0,所以我没有使用所有方向掩码,因为我需要使用 XCode 4.3 进行编译
于 2012-09-23T03:32:56.093 回答