问题
Xcode 升级到11之后,新建项目发生了一些变化:新增了 SceneDelegate 文件,这是 iPad 多窗口显示使用的,如果我们仅仅是想创建一个纯代码的 iPhone 的项目,我们就需要对项目做一些修改。
不需要多窗口
- 删掉 info.plist 中的 Application Scene Manifest 配置
- 去掉 TARGETS - General - Deployment Info 设置中的 iPad 勾选
- 删除 SceneDelegate 文件
- AppDelegate 中增加 window 属性,注释掉 UISceneSession lifecycle 代理方法
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];
}
}
网友评论