在ios6下启动应用程序,同时支持所有方向

时间:2012-11-07 18:50:32

标签: objective-c ipad ios6 autorotate

我做了大量的研究,仍然无法找到解决方案......

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

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

预先感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:1)

我最近碰到了类似的东西,虽然我的问题是我想在iPhone应用程序中强制使用肖像,但允许电影在横向播放。这是我做的:

将属性添加到我的app delegate以存储我想要允许的方向:

@property (nonatomic, assign) NSUInteger supportedOrientations;

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

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

    return supportedOrientations;
}

在app启动时,我强迫肖像:

self.supportedOrientations = UIInterfaceOrientationMaskPortrait;

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

self.supportedOrientations = UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscape;

我必须添加额外的子类化我的UINavigationController以防止之后的旋转,因为我想允许横向视频而不是旋转:

- (BOOL)shouldAutorotate {

    return FALSE;
}

但这仅仅是为了获取信息。你不需要那个