Osa*_*eem 11 ios appdelegate swiftui xcode12
我目前正在开发我正在使用的 SwiftUI 应用程序SceneDelegate和AppDelegate. 我想知道我可以在生命周期的转换UIKit到SwiftUI一个地方有一个App结构,并用scenes等。
另外我想知道如何满足 CoreData 和 PersistentContainers 并将它们注入我们的环境。
我也曾经UIApplicationDelegateAdapter注射过,AppDelegate但@main它给了我错误
'main()' 仅在 iOS 14.0 或更新版本中可用
我@available (iOS 14.0, *)在开始时使用:
import SwiftUI
@available(iOS 14.0, *)
@main
struct MyApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Run Code Online (Sandbox Code Playgroud)
这样做,SceneDelegate代码去哪儿了。我仍然很困惑这种转换是如何进行的。我还没有看到 Apple 在他们的会议或任何事情中谈论过这个问题。帮助将不胜感激。
SceneDelegate 代码在哪里。
@available(iOS 14.0, *)
@main
struct MyApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
@Environment(\.scenePhase) private var scenePhase
var body: some Scene {
WindowGroup { // << this is a scene
ContentView()
.onChange(of: scenePhase) { phase in
switch phase {
case .active:
print(">> your code is here on scene become active")
case .inactive:
print(">> your code is here on become inactive")
case .background:
print(">> your code is here on go in background")
default:
print(">> do something else in future")
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在 ContentView 上设置环境如下:
import SwiftUI
import CoreData
@main
struct MasterDetailApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView().environment(\.managedObjectContext, appDelegate.persistentContainer.viewContext)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3023 次 |
| 最近记录: |