2

我已经进行了大量研究,但仍然无法找到解决方案......

我有一个支持所有方向的应用程序。当应用程序在 iPad 上运行时,我希望它以横向模式启动。然后,如果他们选择,用户可以旋转到纵向。在 ios5 下,我通过在 info.plist 文件中将 iPad 支持的方向设置为 lansdcape left 来实现这一点。然后,我在每个视图控制器中使用 shouldAutorotateToInterfaceOrientation 方法来允许应用程序运行时的所有方向。

然后我更改了我的代码以支持 iOS6 的新定向方法,但是当我在 iPad 上运行应用程序时,它根本没有旋转。然后我更改了 info.plist 文件以支持 iPad 的所有方向。这解决了 iPad 不自动旋转的问题,但现在我不知道如何强制应用程序最初以横向模式打开。有任何想法吗?

提前感谢您提供的任何帮助!

4

1 回答 1

1

我最近遇到了类似的事情,虽然我的问题是我想在 iPhone 应用程序中强制纵向,但允许电影以横向播放。这是我所做的:

向我的应用程序委托添加一个属性来存储我想要允许的方向:

@property (nonatomic, assign) NSUInteger supportedOrientations;

然后在 app 委托中,实现了新的 iOS 6 方法:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {

    return supportedOrientations;
}

在应用程序启动时,我强制肖像:

self.supportedOrientations = UIInterfaceOrientationMaskPortrait;

然后,一旦应用程序完成启动并且我展示了我的根视图控制器,我将它设置为支持两个方向:

self.supportedOrientations = UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscape;

我必须添加子类化 UINavigationController 的附加步骤以防止之后旋转,因为我想允许横向视频但不允许旋转:

- (BOOL)shouldAutorotate {

    return FALSE;
}

但这只是为了提供信息。你不需要那个

于 2012-11-07T19:19:34.623 回答