在我的 App 结构中,我有一个小函数来检查用户之前是否打开过该应用程序。如果没有,它会显示一个包含几个问题的入职视图。现在,我只有一个 .onAppear 附加到 Onboarding 和 ContentView 来运行该函数,但是当您启动应用程序时,Onboarding 视图会快速闪烁一秒钟。如何在启动期间运行该功能,以便 Onboarding 视图不会闪烁一秒钟?
这是我的应用程序结构:
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
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在init,这是非常早的入口点,因此您可以初始化属性:
@main
struct TestApp: App {
private var hasOnboarded: Bool
init() {
let defaults = UserDefaults.standard
hasOnboarded = defaults.bool(forKey: "hasOnboarded")
}
// ... other code
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1327 次 |
| 最近记录: |