我正在开发仅iPhone应用程序。该应用程序在支持的接口方向中支持纵向和横向方向,但是在应用程序的第一个视图中,我使用以下代码禁用旋转:

- (BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

现在,我的问题是,当我在iPad处于横向模式的情况下,使用 iOS 6.1 iPad 上启动应用程序时,状态栏处于横向模式时,应用程序以纵向模式启动。此外,该应用程序不响应任何触摸。

我尝试在调用YES时返回shouldAutorotate或通过调用[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait]将状态栏设置为纵向模式,但是当我这样做时,应用程序的方向切换了3次(横向->纵向倒置->纵向),导致了很多启动时闪烁的消息,所以这似乎不是可行的方法,或者是吗?

最佳答案

AppDelegate功能中的功能
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{ }
默认情况下,应用程序和视图控制器的受支持的界面方向对于iPad习惯设置为UIInterfaceOrientationMaskAll,对于iPhone习惯设置为UIInterfaceOrientationMaskAllButUpsideDown。

在supportedInterfaceOrientationsForWindow函数中检查所选的viewcontroller,然后将其设置为纵向。

关于ios - 状态栏保持横向,而UIInterfaceOrientation仅纵向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18612396/

10-12 01:52