状态栏保留在横向中,而UIInterfaceOrientation仅为纵向

时间:2013-09-04 11:18:56

标签: ios ios6 uiinterfaceorientation

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

- (BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

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

我已尝试在YES的调用中返回shouldAutorotate或通过调用[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait]以纵向模式设置状态栏,但是当我执行此操作时应用程序切换3次方向(横向 - >纵向颠倒 - >肖像)在启动时导致大量闪烁,所以这似乎不是要走的路,或者是它?

1 个答案:

答案 0 :(得分:1)

AppDelegate功能中的内容

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

默认情况下,应用程序和视图控制器支持的界面方向设置为iPad惯用语的UIInterfaceOrientationMaskAll和iPhone惯用语的UIInterfaceOrientationMaskAllButUpsideDown。

在supportedInterfaceOrientationsForWindow函数中检查选定的viewcontroller,然后将其设置为Portrait direction。