我正在使用的应用程序有两个视图,登录视图和主页视图。当应用程序首次启动时,它会从登录视图开始。用户必须使用名称和 ID 进行注册,然后单击下一步按钮,这会将用户导航到主页视图。当用户使用名称和 ID 注册时,数据将保存到
CoreData
中。
用户注册后,下次用户启动应用程序时,我希望应用程序以主视图启动。
import SwiftUI
@main
struct BJITXpressApp: App {
let persistenceController = PersistenceController.shared
var body: some Scene {
WindowGroup {
LoginView()
.environment(\.managedObjectContext, persistenceController.container.viewContext)
}
}
}
在应用程序启动时,应用程序将检查
CoreData
的注册数据,如果找到数据,应用程序将从 Home View 启动。
我在登录视图上尝试了以下策略
.onAppear
struct LoginView: View {
@Environment(\.managedObjectContext) var context
@State private var name: String = ""
@State private var employeeId: String = ""
@State var isShowingHomeView = false
var body: some View {
NavigationView{...}
.onAppear{
checkFirstUse()
}
.fullScreenCover(isPresented: $isShowingHomeView){
HomeView()
}
但是通过这种方式,应用程序首先从登录视图开始,然后如果它在
Coredata
中找到数据,则导航到 HomeView。
而不是 Starts -> LoginView -> Check CoreData -> Home View ,我想要它像 Starts -> Check CoreData -> HomeView