1

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

- (BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

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

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

4

1 回答 1

1

你在 AppDelegate 函数中有什么

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

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

在supportedInterfaceOrientationsForWindow 函数中检查选定的视图控制器,然后将其设置为纵向。

于 2013-09-04T12:45:25.757 回答