shouldAutorotate返回true但不旋转

时间:2012-11-08 14:07:08

标签: objective-c ios xcode ipad ios6

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

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

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

   return [DeviceSupport isOrientationSupported:toInterfaceOrientation];
}
在应用程序启动时,

shouldAutorotate被调用五次。 toInterfaceOrientation值是按顺序而不改变ipad方向:0,0,0,4和4.首先,为什么app需要这么长时间才能在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)

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:3)

更改您的代码:

[self.window addSubview:aController.view];

到此代码:

self.window.rootViewController = aController;

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

shouldAutorotate -return YES

supportedInterfaceOrientations-返回UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft;

答案 1 :(得分:0)

你能仔细检查一下你是否实现了supportedInterfaceOrientations吗?

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAll;
}