iOS 在 FinishedLaunching 中设置 RootViewController 时应用程序不旋转

iOS app doesn't rotate when setting the RootViewController in FinishedLaunching

所以问题是——这是新的,它曾经在 iOS 7 中工作——当我注释掉 "FinishedLaunching" 时,它旋转得很好,但是当我覆盖它时 "FinishedLaunching" 函数自己创建 "window",它无法旋转。这真是奇怪。有什么想法吗?

我想使用 FinishedLunching 的原因是因为有时我想要一个不同的 viewController 作为初始视图控制器。

这是我的 "FinishedLunching"

中的代码
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
     self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];

     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

     UIViewController *viewController = // determine the initial view controller here and instantiate it with [storyboard instantiateViewControllerWithIdentifier:<storyboard id>];

     self.window.rootViewController = viewController;
     [self.window makeKeyAndVisible];

     return YES;
}

问题是您正在用

创建一个新的window
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];

当它自动为您设置的 AppDelegate 非常好用时,只需使用 self.window 而无需分配初始化新的