栏中的导航链接项目返回到NavigationView的顶部

时间:2020-09-23 16:25:09

标签: swift swiftui swiftui-navigationlink

// or `allData.map(updateCollection);`
const updatedData = allData.map(collection => updateCollection(collection));

在TestViews struct Testing: View { var body: some View { NavigationView{ VStack { Text("View 1") Text("View 1.3") NavigationLink(destination: TestView(), label: { Text("View 1 navigation") }) } } } } struct TestView: View { var body: some View { VStack { Text("View 2") } .navigationBarItems(trailing:NavigationLink( destination: Text("View 3"), label: { Text("Navigate") })) } } 内单击NavigationLink时,它将导航到View3。当我单击“后退”按钮时,它不会返回到TestView,而是一直返回到“测试”。

如何使其返回上一个视图而不是第一个视图?

我正在使用Xcode 12。

1 个答案:

答案 0 :(得分:1)

将导航链接放入导航视图的主体中(栏不在导航视图中)

所以这是可行的方法

struct TestView: View {
    @State private var isActive = false

    var body: some View {
            VStack {
                Text("View 2")
            }
            .background(
               NavigationLink(destination: Text("View 3"), isActive: $isActive,
                label: { EmptyView() })
            )
            .navigationBarItems(trailing:
               Button("Navigate", action: { self.isActive = true }))
    }
}