SwiftUI-关闭应用程序后弹出根视图

时间:2020-09-28 14:20:21

标签: swift swiftui swiftui-navigationlink

我已经实现了以下链接中找到的解决方案,以返回到我的根视图:

struct ContentView: View {
@State private var isActive: Bool = false
@AppStorage("setupComplete") var setupComplete = false

var body: some View {
    NavigationView {
        
        if setupComplete == false {
        
        NavigationLink(
            destination: ContentView2(isActive: self.$isActive),
            isActive: self.$isActive) {
            Text("Begin!")
        }

    }
        
        else {
            
            ContentView3(isActive: self.$isActive)
        }
        
    }
}}


struct ContentView2: View {
@Binding var isActive: Bool

var body: some View {
    NavigationLink(
        destination: ContentView3(isActive: self.$isActive)) {
            Text("View Results")
        }

}}

struct ContentView3: View {
@Binding var isActive: Bool

var body: some View {
    
    VStack {
        
        Button(action: {
            self.isActive = false
        }, label: {
            Text("Reset - Perform setup again")
        })
        
    }

}}

这很好。 ContentView + ContentView2是“设置”屏幕,之后显示ContentView3,该屏幕显示该设置的结果

我正在设置一个@Appstorage变量(在另一个文件中),称为“ setupComplete”,以在应用启动时触发ContentView3的打开(如果用户之前已经执行过此设置)(因此,用户不必执行每次打开应用时进行设置)

但是,

如果我关闭应用程序,然后重新打开(在ContentView 3上),则单击“重置-重新执行设置”按钮不会使用户返回到根视图控制器(ContentView 1)以再次执行设置

我该如何实现?

谢谢

0 个答案:

没有答案