0

我的第一个视图控制器是 LoginViewController。我正在尝试在 iOS 6 上支持自动旋转管理。

我已经实现了 shouldAutorotate 而不是 shouldAutorotateToInterfaceOrientation,如下所示:

-(BOOL)shouldAutorotate {
   UIInterfaceOrientation toInterfaceOrientation = [[UIDevice currentDevice] orientation];

   return [DeviceSupport isOrientationSupported:toInterfaceOrientation];
}

shouldAutorotate在应用程序启动时被调用五次。toInterfaceOrientation 值按顺序排列且不改变 ipad 方向:0、0、0、4 和 4。首先,为什么应用程序需要这么长时间才能在 currentDevice 中放置正确的方向?为什么应该调用Autorotate 五次?

当方向为 4 时,[DeviceSupport isOrientationSupported:toInterfaceOrientation]返回 true。但我的应用程序不旋转。

在我的 info.plist 中:

Supported interface orientations
=> Item 0: Portrait (bottom home button)
=> Item 1: Portrait (top home button)

Supported interface orientations (iPad)
=> Item 0: Landscape (left home button)
=> Item 1: Landscape (right home button)

任何的想法?谢谢。

4

2 回答 2

3

更改您的代码:

[self.window addSubview:aController.view];

到这段代码:

self.window.rootViewController = aController;

还为方向支持添加以下方法

shouldAutorotate -return 是

supportedInterfaceOrientations- 返回 UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft;

于 2012-11-08T14:16:32.167 回答
0

您能否再次检查您是否也实现了supportedInterfaceOrientations?

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAll;
}
于 2012-11-08T14:31:32.230 回答