我们知道 Apple 已经大大简化了 SwiftUI 应用程序生命周期 (WWDC20)。我看过 Paul Hudson 先生关于 SwiftUI 新变化的视频,其中他解释了如何在“@main or :App”结构中访问 AppDelegate 方法。
我想知道是否有任何方法可以访问 SceneDelegate 方法?
提前致谢。:)
SceneDelegate
SwiftUI 2.0 生命周期中暂时无法访问。您可以将一些回调.onChange
用于[.active, .inactive, .background]状态,例如此处所示
或者......继续使用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()
}
}
}
}