Xcode 11 新建项目多窗口问题

问题

Xcode 升级到11之后,新建项目发生了一些变化:新增了 SceneDelegate 文件,这是 iPad 多窗口显示使用的,如果我们仅仅是想创建一个纯代码的 iPhone 的项目,我们就需要对项目做一些修改。

不需要多窗口

  1. 删掉 info.plist 中的 Application Scene Manifest 配置
  2. 去掉 TARGETS - General - Deployment Info 设置中的 iPad 勾选
  3. 删除 SceneDelegate 文件
  4. AppDelegate 中增加 window 属性,注释掉 UISceneSession lifecycle 代理方法
Xcode 11 新建项目多窗口问题_第1张图片
scene Manifest.png

Xcode 11 新建项目多窗口问题_第2张图片
iPad.png

需要多窗口

如果需要用到多窗口,需要在 SceneDelegate 代理中创建新的 window:

- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
   
    if (@available(iOS 13.0, *)) {
        UIWindowScene *windowScene = (UIWindowScene *)scene;
        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
        [self.window setWindowScene:windowScene];
        [self.window setBackgroundColor:[UIColor whiteColor]];
        
        ViewController *vc = [[ViewController alloc] init];
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
        self.window.rootViewController = nav;
        [self.window makeKeyAndVisible];
    }
}

你可能感兴趣的:(Xcode 11 新建项目多窗口问题)