在 ios6 下横向启动应用程序同时支持所有方向
Posted
技术标签:
【中文标题】在 ios6 下横向启动应用程序同时支持所有方向【英文标题】:Launching an app in landscape under ios6 while supporting all orientations 【发布时间】:2012-11-07 18:50:31 【问题描述】:我已经进行了大量研究,但仍然无法找到解决方案...
我有一个支持所有方向的应用程序。当应用程序在 iPad 上运行时,我希望它以横向模式启动。然后,如果他们选择,用户可以旋转到纵向。在 ios5 下,我通过在 info.plist 文件中将 iPad 支持的方向设置为 lansdcape left 来实现这一点。然后,我在每个视图控制器中使用 shouldAutorotateToInterfaceOrientation 方法来允许应用程序运行时的所有方向。
然后我更改了我的代码以支持 iOS6 的新方向方法,但是当我在 iPad 上运行应用程序时,它根本没有旋转。然后我更改了 info.plist 文件以支持 iPad 的所有方向。这解决了 iPad 不自动旋转的问题,但现在我不知道如何强制应用程序最初以横向模式打开。有任何想法吗?
提前感谢您提供的任何帮助!
【问题讨论】:
【参考方案1】:我最近遇到了类似的事情,虽然我的问题是我想在 iPhone 应用程序中强制纵向,但允许电影以横向播放。这是我所做的:
向我的应用委托添加一个属性来存储我想要允许的方向:
@property (nonatomic, assign) NSUInteger supportedOrientations;
然后在 app delegate 中,实现新的 iOS 6 方法:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
return supportedOrientations;
在应用启动时,我强制肖像:
self.supportedOrientations = UIInterfaceOrientationMaskPortrait;
然后,一旦应用程序完成启动并显示了我的根视图控制器,我将其设置为支持两个方向:
self.supportedOrientations = UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscape;
之后我必须添加子类化 UINavigationController 以防止旋转的额外步骤,因为我想允许横向视频但不允许旋转:
- (BOOL)shouldAutorotate
return FALSE;
但这只是为了提供信息。你不需要那个
【讨论】:
以上是关于在 ios6 下横向启动应用程序同时支持所有方向的主要内容,如果未能解决你的问题,请参考以下文章
在 xcode 4.5 GM IOS 6 中将方向设置为横向模式
支持 iPhone 6 和 iPhone 6+,针对 iPad 纵向和横向方向具有不同的启动/启动屏幕图像