模拟器中的iOS 6自动转换与实际的iOS 6设备有所不同

我的应用程序不会在iOS 6 GM模拟器中进行自动旋转,但它会在设备上使用相同版本的iOS。 这可能是一个模拟器的错误? 该应用程序正在使用不推荐的自动旋转方法,但他们在设备本身工作正常,这让我不知道模拟器API是不同的?

这是我添加到让我的应用程序再次工作:

// Tell the system what we support - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskAllButUpsideDown; } // Tell the system It should autorotate - (BOOL) shouldAutorotate { return YES; } // Tell the system which initial orientation we want to have - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return UIInterfaceOrientationPortrait; } 

它应该仍然适用于不build议使用的旋转方法,但是您需要将以下内容添加到didFinishLaunchingWithOptions:方法中:

 self.window.rootViewController = yourRootViewController; 

这告诉主window什么视图控制器发送旋转通知。 这是iOS 6.0 SDK的新function。

添加以下内容不足以使其在模拟器上工作:

 - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskAllButUpsideDown; } - (BOOL) shouldAutorotate { return YES; } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return UIInterfaceOrientationPortrait; } 

为了使它工作,我还在appDelegate类的didFinishLaunchingWithOptions函数中添加了以下内容:

 self.window.rootViewController = viewController; 

在添加之后,我停止了以下错误: 在应用程序启动结束时,应用程序窗口期望有一个根视图控制器

 - (BOOL)shouldAutorotate { return NO; } 

并将应用程序plist文件中的根视图控制器支持的旋转设置为仅肖像。