Как я могу реализовать такой экран в приложении, используя SwiftUI. Только если приложение запускается!
Если приложение входит в Foreground, я использую.
func sceneWillEnterForeground(_ scene: UIScene) {
let contentView = RootView()
window?.rootViewController = UIHostingController(rootView: contentView)
window?.makeKeyAndVisible()
}
Но если приложение запускается, я хочу использовать.
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
let contentView = RootSplashView()
if let windowScene = scene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
window.rootViewController = UIHostingController(rootView: contentView)
self.window = window
window.makeKeyAndVisible()
}
}
Проблема заключается в том, что каждый раз, когда он обращается к RootView ()
Как я могу это исправить ??
Вот мой RootSplashView:
struct RootSplashView: View {
@State private var hasTimeElapsed = false
var body: some View {
ZStack{
if hasTimeElapsed {
RootView()
}else{
SplashView()
}
}
.onAppear(perform: delayView)
}
private func delayView() {
DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
self.hasTimeElapsed = true
}
}
}
Надеюсь, вы поможете мне! Спасибо