【发布时间】:2021-03-28 20:53:09
【问题描述】:
我知道这个问题已经被问了一百万次了,但无论如何我仍然找不到一个好的答案。
一直在使用 SwiftUI(刚刚开始)并使用现有代码包括 Firebase 注册/电话登录。
流程是
- 显示入职屏幕 (OnboardingStepView)
- 显示电话输入屏幕 (LoginView)
- 显示电话号码验证 (VerificationView)
- 显示捕获更多用户数据视图 (RegisterView)
- 转到主页 (HomeView)
在我的第一个视图 (ContentView) 中,我有以下代码:
struct ContentView: View {
@AppStorage("log_Status") var status = false
@State private var onboardinDone = false
var data = OnboardingDataModel.data
var body: some View {
ZStack{
Group {
if !onboardinDone {
OnboardingViewPure(data: data, doneFunction: {
status = true
self.onboardinDone = true
print("done onboarding")
})
} else {
NavigationView{
VStack{
if status{Home()}
else{Login()}
}
.preferredColorScheme(.dark)
.navigationBarHidden(true)
}
}
}
}
}
}
现在,所有视图都已编码并且可以正常工作(使用 Firebase),并且在以前的 Swift 版本中,我会在点击按钮时进行 segue。但是,在 SwiftUI 中这不是一个选项,您现在需要使用导航链接(可能看起来像一个按钮)。
例如,在我的“VerficationView”中有一个按钮可以执行操作。
按钮(操作:loginData.verifyCode){
现在,在点击按钮并在后台验证数据后,我想移动到我创建的下一个视图,该视图注册用户的“姓名、简历和图像”(RegisterView)。此视图有效并在 Firebase 中注册用户的数据。但是,一旦用户单击上述按钮,我不知道如何正确呈现此屏幕。
- 是否可以将按钮更改为导航链接,是否可以向其中添加操作?
- 我是否使用@State 设置视图状态并使用“isActive”来跟踪显示的内容?
- 我是否使用“母视图”并且该视图始终跟踪显示的视图?
请让我知道您的想法,因为我被卡住了,不知道如何继续......
谢谢!
【问题讨论】: