swiftui怎么关闭当前页面返回到

如何在SwiftUI中导航到一个新视图,然后删除它?让我们在NavigationView和NavigationLink中设置一个主视图来打开细节视图。NavigationLink是一个触发导航到指定视图的按钮。细节视图将包含一个按钮,用于导航回第一个视图。但如何摒弃细节视图呢?
SwiftUI提供了一个名为Environment的动态视图属性。它可以用于从视图的环境中读取值。表示模式是我们可以读取的值之一。这就是我们如何访问PresentationMode结构所呈现的属性和取消视图的功能。因此,我们需要将dynamic view属性添加到我们的detail视图中,然后在单击按钮时调用dismiss()

PresentationMode 文档:

https://developer.apple.com/documentation/swiftui/presentationmode

实现代码:

第一页

import SwiftUI 
struct ContentView:View{
         var body:some View{
            NavigationView{
                VStack(spacing:8){
                    Text("Hello World")
                    NavigationLink("Go to Detail View",destination:DetailView())
                }.navigationBarTitle(Text("View 1"))
            }
        }
}

第二页:

import SwiftUI
struct DetailView: View {
    @Environment(\.presentationMode) var presentationMode
    var body: some View {
        VStack(spacing: 8) {
            Text("Detail view")
            Button("Go Back", action: {
                //这里关闭当前页面 返回上一个页面
                self.presentationMode.wrappedValue.dismiss()
            })
        }
    }
}