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

时间:2012-09-13 12:53:59

标签: ios objective-c

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

4 个答案:

答案 0 :(得分:15)

它仍应使用已弃用的旋转方法,但您需要将以下内容添加到didFinishLaunchingWithOptions:方法中:

self.window.rootViewController = yourRootViewController;

这告诉主window要向其发送轮播通知的视图控制器。这是iOS 6.0 SDK的新功能。

答案 1 :(得分:11)

这是我为了让我的应用再次运作而添加的内容:

// 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;
}

答案 2 :(得分:0)

添加以下内容并不足以使其在模拟器上运行:

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

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

self.window.rootViewController = viewController;

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

答案 3 :(得分:0)

- (BOOL)shouldAutorotate {
    return NO;
}

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