我正在尝试在 SwiftUI 中创建一个多视图工作流程,您可以在其中从上次中断的地方重新开始,但仍然有很好的 NavigationView 过渡。
作为一个基本示例,我希望它具有SignupView
(您输入用户凭据的位置)> PersonalInfoView
(您输入其他个人信息的位置)>etc.
我最初使用一个简单的 NavigationLink 从一步到下一步。但我也想要它,如果你完成SignupView
然后退出应用程序,如果你再次打开它,用户可以PersonalInfoView
直接被带到。例如,您可以从上次中断的地方重新开始。
所以我想到了使用条件渲染:
if !userExists {
SignupView()
} else if !hasPersonalInfo {
PersonalInfoView()
} else {
Text("Signup complete")
}
但是现在,每当我从SignupView
到时,PersonalInfoView
我都不会像使用 NavigationLink 那样获得漂亮的滑动过渡。如果我添加 NavigationLink 到 go to PersonalInfoView
,它会滑入其中(就像典型的导航一样),然后滑出到另一个版本的视图(条件渲染)。
所以我想我的问题是,在整个 NavigationView 范式中始终处理条件视图的最佳方式是什么。谢谢
编辑:我可能没有很好地解释我的问题:我仍然想对所有内容使用 NavigationView(以便获得转换、后退按钮等)。我只是希望能够从流程中的不同点开始,但之后的每个视图都将成为导航堆栈的一部分。