第一次启动我的应用程序时,需要进行一些设置。完成此设置后,用户应该会来到 MainView。
现在我希望用户在到达 MainView 时不能立即跳回上一个设置步骤。
我能找到的所有解决方案都是简单地删除后退按钮。但这对我来说还不够,我目前正在使用 tvOS,他的遥控器上有一个返回按钮。如果他随后按下此按钮,则理想情况下他应该返回 tvOS 主屏幕。
是否有可能删除完整的导航堆栈或具有相同结果的类似内容?
答案 0 :(得分:1)
您可以在父级别替换整个视图层次结构(如果给定条件为真,则在您的 NavigationView
之上:
var body : some View {
if setup {
//parent component of views for once setup is done
MainView()
} else {
//parent component of the setup views (including a NavigationView)
SetupScreens()
}
}
因此,在最终设置屏幕上,将 setup
设置为 true
(这可能应该存储在每个视图都可以访问的 ObservableObject
中[可能通过 .environmentObject
]) 并且 NavigationView
将被销毁,层次结构将被 MainView
替换。