Je travaille actuellement sur l'application SwiftUI dans laquelle j'utilise SceneDelegate
et AppDelegate
. Je voudrais savoir comment je peux convertir le cycle de vie de UIKit
à SwiftUI
_ un où il y a un App
struct et avec scenes
etc.
De plus, j'aimerais savoir s'occuper de Coredata et de persisterscontaineries et de les injecter dans nos environnements.
Aussi, j'ai utilisé UIApplicationDelegateAdapter
_ pour injecter AppDelegate
_ mais le @main
Me donne une erreur
'Main ()' n'est disponible que dans iOS 14.0 ou plus récent
J'utilise @available (iOS 14.0, *)
au début:
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()
}
}
}
Le faire comme ça, où est le code SceneDelegate
va. Je suis toujours assez confus comment va cette conversion. Je n'ai pas vu Apple en parlant de cela dans leurs sessions ou quoi que ce soit. L'aide sera vraiment appréciée.
où va le code Screedelegate.
@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")
}
}
}
}
}