美文网首页程序员
iOS 13 SceneDelegate适配

iOS 13 SceneDelegate适配

作者: 骑着猪的小哥哥 | 来源:发表于2019-10-08 16:57 被阅读0次

Xcode 11新建工程

在Xcode 11 创建的工程,运行设备选择 iOS 13.0 以下的设备,运行应用时会出现黑屏现象。

原因 :

1.Xcode 11 默认是会创建通过 UIScene 管理多个 UIWindow 的应用,工程中除了 AppDelegate 外会多一个 SceneDelegate
2.AppDelegate和SceneDelegate这是iPadOS带来的新的多窗口支持的结果,并且有效地将应用程序委托的工作分成两部分。

也就是说在我们用多窗口开发iPadOS中,从iOS 13开始,您的应用代表应该:

1.设置应用程序期间所需的任何数据。
2. 响应任何专注于应用的事件,例如与您共享的文件。
3.注册外部服务,例如推送通知。
4.配置您的初始场景。

相比之下,在iOS 13中的新顶级对象是一个UIWindowScene,场景代表可以处理应用程序用户界面的一个实例。因此,如果用户创建了两个显示您的应用程序的窗口,则您有两个场景,均由同一个应用程序委托支持。
这些场景旨在彼此独立工作。因此,您的应用程序不再移动到后台,而是单个场景执行 - 用户可以将一个移动到后台,同时保持另一个打开。

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


屏幕快照 2019-10-08 下午4.46.21.png 屏幕快照 2019-10-08 下午4.49.47.png

适配方案

如果我们不开发iPadOS多窗口APP,SceneDelegate窗口管理我们可以不需要直接删掉就好了。

1.删除掉info.plist中Application Scene Manifest选项,
2.删除项目中的Scenedelegate.h和Scenedelegate.m
3.删除掉APPdelegate.m中的#pragma mark - UISceneSession lifecycle代码
4.在APPdelegate.h中添加@property (strong, nonatomic) UIWindow * window; 属性

然后,老朋友就还是熟悉的项目,熟悉的味道了。

相关文章

  • UIWindow(III)

    iOS13 UIWindow 适配 AppDelegate.m 文件 SceneDelegate.m 文件   这...

  • iOS13适配 - SceneDelegate

    借鉴:iOS 13 SceneDelegate适配 用XCode 11 创建的工程 在Xcode 11 创建的工程...

  • iOS 13 SceneDelegate适配(Xcode 11,

    文章目录 最低适配的系统改到iOS13以下后 解决方案一:删除SceneDelegate,还原到iOS13以前的版...

  • iOS 13 SceneDelegate适配

    Xcode 11新建工程在Xcode 11 创建的工程,运行设备选择 iOS 13.0 以下的设备,运行应用时会出...

  • iOS 13 SceneDelegate适配

    Xcode 11新建工程 在Xcode 11 创建的工程,运行设备选择 iOS 13.0 以下的设备,运行应用时会...

  • iOS 13 SceneDelegate适配

    Xcode 11新建工程 在Xcode 11 创建的工程,运行设备选择 iOS 13.0 以下的设备,运行应用时会...

  • iOS 13 SceneDelegate适配

    Xcode 11新建工程 在Xcode 11 创建的工程,运行设备选择 iOS 13.0 以下的设备,运行应用时会...

  • xcode11创建新项目

    1,如果项目不需要适配iOS13以下的机型。xcode11之后,入口放在了SceneDelegate里面。直接使用...

  • 关于iOS 13 SceneDelegate 适配

    在XCode11 之后,在我们新建工程的时候发现多了一个新增文件 SceneDelegate.swift ,然后我...

  • iOS 开发之swift 5.0&iOS 13小记

    1、Xcode 11.5去掉SceneDelegate iOS13以下系统使用SceneDelegate黑屏,暂时...

网友评论

    本文标题:iOS 13 SceneDelegate适配

    本文链接:https://www.haomeiwen.com/subject/jjmbpctx.html