有什么方法可以在 iOS 14 应用程序生命周期中调用 SceneDelegate 方法吗?

Is there any way to call SceneDelegate methods in iOS 14 app life cycle?

我们知道 Apple 大大简化了 SwiftUI 应用程序生命周期 (WWDC20)。我看过 Mr.Paul Hudson 关于 SwiftUI 新变化的视频,他在视频中解释了如何访问“@main 或 :App”结构中的 AppDelegate 方法。

我想知道是否有任何方法可以访问 SceneDelegate 方法?

提前致谢。 :)

SwiftUI 2.0 生命周期中现在没有 SceneDelegate 的访问权限。一些回调可以与 .onChange 一起用于 [.active, .inactive, .background] 状态,如图所示 for example here

或者...继续使用 UIKit 生命周期没有错

AppDelegate访问生命周期的例子

struct PodcastScene: Scene {
    @Environment(\.scenePhase) private var phase

    var body: some Scene {
        WindowGroup {
            TabView {
                LibraryView()
                DiscoverView()
                SearchView()
            }
        }
        .onChange(of: phase) { newPhase in
            switch newPhase {
            case .active:
                // App became active
            case .inactive:
                // App became inactive
            case .background:
                // App is running in the background
            @unknown default:
                // Fallback for future cases
            }
        }
    }
}

如果您添加一个框架配置,如 Firebase,您可以覆盖 init 并在此处输入您的代码。

struct PodcastScene: Scene {

    init() {
        FirebaseApp.configure()
    }

    var body: some Scene {
        WindowGroup {
            TabView {
                LibraryView()
                DiscoverView()
                SearchView()
            }
        }
    }
}