Dav*_*idA 33 xcode swift ios13 swiftui
我当前正在使用Xcode 11 Beta5。在我的应用程序中,它可以在iOS 12及更低版本上正常运行。但是,在iOS 13上,默认情况下似乎使用的是UIScene。这导致我的应用无法执行任何操作。
当应用程序以全新安装方式启动时,用户必须接受条款和条件。同意后,他们进入加载屏幕,然后将其定向到主视图。在我发布的屏幕截图中,当前当前前景背后的视图是启动加载屏幕。
我们将很快考虑在整个应用程序中添加多视图场景支持,但是现在我们需要处理更高优先级的内容。
该应用程序目标的“常规”设置中的“支持多个窗口”已被禁用。另外,我在info.plist文件中将“启用多个Windows”设置为“否”。
到目前为止,什么都没有真正起作用。基本上我想选择退出/禁用多个窗口和UIScene / SwiftUI以恢复iOS 10-12中的原始行为。这可能在iOS 13中还是我们必须对其进行更新?
更新:
这是视图调试层次结构的屏幕截图。左侧是iOS 12,右侧是iOS13。没有在Info.plist中添加任何内容,也没有添加任何场景委托类或方法,为什么会有不同?几乎可以在Xcode 11的现有生产就绪代码中运行它。
rma*_*ddy 58
当您的应用程序在iOS 13及更高版本下运行时,虽然应该拥抱使用场景,但在仍支持iOS 12或更早版本的情况下,您可以完全退出。
首先,从Info.plist中完全删除“ Application Scene Manifest”条目。
如果有场景委托类,请将其删除。
如果您的应用程序委托中有任何与场景相关的方法,请删除这些方法。
您的应用现在应仅使用应用委托,在iOS 13下,其生命周期应与iOS 12相同。
这些都不是特定于Swift或SwiftUI的。
dfd*_*dfd 18
使用答案希望格式化的内容比注释更好。(随时发表评论,我会进行编辑。)
这也是我面临的事情,这里有一些场景在起作用:
UIKit
应用程序,只需打开它,它就可以正常工作。我所有的应用程序都没有 SceneDelegate
文件,也没有对AppDelegate
故事板的任何更改。UIKIT
应用,只需在确保未选中“使用SwiftUI”复选框的情况下进行创建即可。但是我想知道您是否面对第三种情况-我大约一个星期前所做的。创建一个针对iOS 13之前的版本的新UIKit应用。(我实际上针对的是iOS 9!)
是的,您的模板会给您15个错误(自Beta 5起),以及一个SceneDelegate
文件/类。幸运的是,Xcode将帮助您自动纠正除一个以外的所有错误。
最后一个是添加一行属于SceneDelegate
该类的行,但不幸的是Apple将该行排除在AppDelegate
类之外-十几@available(iOS 13.0, *)
条子句意味着您已选择退出SceneDelegate
运行iOS 12并猜测呢?它不存在ApDelegate
!
将此添加到您的AppDelegate:
var window: UIWindow?
Run Code Online (Sandbox Code Playgroud)
届时,您应该有一个UIKit
针对iOS 12及更早版本的正在运行的应用程序。
Nik*_*att 12
我使用 dfd 的答案让它工作,但因为我的应用程序在 Objective-C 中,我不得不做一个改变:
在 Objective-C 中,你想把
@property (strong, nonatomic) UIWindow *window;
Run Code Online (Sandbox Code Playgroud)
在 AppDelegate.h 中(不在 .m 中)
归档时间: |
|
查看次数: |
8134 次 |
最近记录: |