如何解决在SwiftUI 2.0中启动应用程序期间运行代码
在我的App结构中,我有一个小函数,用于检查用户之前是否打开过该应用。如果没有,它将显示一个入职视图,其中包含一些问题。现在,我只是在Onboarding和ContentView上附加了一个.onAppear来运行该功能,但是当您启动该应用程序时,Onboarding视图会快速闪烁一秒钟。我如何在启动过程中运行该功能,以使Onboarding视图不会闪烁一秒钟?
这是我的App结构:
import SwiftUI
@main
struct TestApp: App {
@State private var hasOnboarded = false
var body: some Scene {
WindowGroup {
if hasOnboarded {
ContentView(hasOnboarded: $hasOnboarded)
.onAppear(perform: checkOnboarding)
} else {
Onboarding(hasOnboarded: $hasOnboarded)
.onAppear(perform: checkOnboarding)
}
}
}
func checkOnboarding() {
let defaults = UserDefaults.standard
let onboarded = defaults.bool(forKey: "hasOnboarded")
hasOnboarded = onboarded
}
}
解决方法
您可以在init
中进行操作,这是非常早的切入点,因此您可以初始化属性:
@main
struct TestApp: App {
private var hasOnboarded: Bool
init() {
let defaults = UserDefaults.standard
hasOnboarded = defaults.bool(forKey: "hasOnboarded")
}
// ... other code
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。