xcode11 新建项目中的SceneDelegate

1、Xcode 11 默认是会创建通过 UIScene 管理多个 UIWindow 的应用,工程中除了 AppDelegate 外会多一个 SceneDelegate

2、AppDelegate和SceneDelegate这是iPadOS带来的新的多窗口支持的结果,并且有效地将应用程序委托的工作分成两部分。info.plist中 Enable Multiple Windows,需要将其设置为“ YES”以支持多个窗口。

我们可以看下info.plist文件和工程项目文件的变化如图:




适配方案

1、如果我们不开发iPadOS多窗口APP,SceneDelegate窗口管理我们可以不需要直接删掉就好了。删除掉info.plist中Application Scene Manifest选项,同时,文件SceneDelegate可删除可不删

2、相关代码注释掉

#pragma mark - UISceneSession lifecycle
 - (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options {        
     return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:  connectingSceneSession.role];
}

 - (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet *)sceneSessions {   
}   

//注释掉这两个方法。

3、Appdelegate新增windows属性

在APPdelegate.h中添加@property (strong, nonatomic) UIWindow * window; 属性

    ///做完这些就跟以前一样啦。

你可能感兴趣的:(xcode11 新建项目中的SceneDelegate)