iOS 8:没有故事板的情况下,自动旋转不起作用

所以我想开始一个项目W / O故事板,我似乎无法弄清楚为什么UIWindow没有传递自动旋转命令到根视图控制器。 随着故事板,自转运作。 如果我编程创build窗口,自动旋转不起作用。

screenshot

这是我如何实例化App Delegate中的窗口:

window = UIWindow(frame: UIScreen.mainScreen().bounds) if let window = window { window.backgroundColor = UIColor.whiteColor() window.makeKeyAndVisible() let nc: SignInViewController = UIStoryboard(name: "Main", bundle: nil) .instantiateViewControllerWithIdentifier("SignInViewController") as SignInViewController window.rootViewController = nc } 

谢谢!

标记的答案是降级到XCode 6.0.1 – 我不推荐它。

1)如果你不使用故事板 (这个主题的答案!!)

转到 – >项目名称 – >目标 – >项目名称 – >部署信息 – > 主界面 – >使其为空


2)如果你使用故事板 (不是主要答案)

你的AppDelegate应该看起来像…

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { return true } 

你在使用故事板吗? 如果是这样,你可能在你的应用didFinishLaunchingWithOptions方法中有旧的代码。

尝试删除下面的代码行和任何其他与UIWindow做:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

只需要从AppDelegate.m文件中删除上面的行。

我认为你的代码是正确的,而且你看到了XCode 6.1中的一个(很多)错误。

我使用你的代码尝试了一个非常简单的6.1应用程序,我可以试验这个bug。 然后我降级到6.0.1,我的应用程序的自转是完美的。

我build议你降级到XCode 6.0.1并重试你的应用程序。

您可以从这里下载 : Apple Downloads

确保在项目的常规设置中启用设备方向

在xcode 6.1中,点击你的主项目文件夹,常规选项卡

向下滚动至设备方向,启用“纵向”,“左侧风景”,“右侧风景”

有关“设备方向”设置的图片,请参阅iOS 8.1自动旋转

我刚刚解决了我的项目中的问题。 对我来说,解决scheme是从以下代码中删除animation:
[self presentViewController: root animated: animated completion:^{ [AppDelegate singleton].window.rootViewController = root; }]; 现在只是[AppDelegate singleton].window.rootViewController = root;

我不知道这是否回答你的问题,但它解决了我认为是共同问题的例子。