SwiftUI导航多个返回按钮

18

当我推入多个视图时,导航栏中会显示多个返回按钮。

struct ContentView: View {
    var body: some View {
        NavigationView {
             NavigationLink(destination:SecView()) {
                   Text("Primo")
               }
        }
    }
}

struct SecView: View {
    var body: some View {
        NavigationView {
             NavigationLink(destination:TerView()) {
                   Text("Secondo")
               }
        }
    }
}

struct TerView: View {
    var body: some View {
        Text("Hello World!")
    }
}

我希望每个视图只有一个返回按钮。

以下是问题的屏幕截图。

输入图像描述

2个回答

31

在导航栈的根目录下应该只有一个NavigationView。

从SecView中删除NavigationView块,这样你就会拥有一个由ContentView拥有的单一导航栏。


1

正如Gene所说,你的导航栈中应该只有一个NavigationView。这意味着下一次当你需要导航到不同View中的页面时,你将添加一个NavigationLink但不会将其包装在NavigationView中。因此,在你最初发布的代码中,你需要从SecView View中删除NavigationView但仍保留NavigationLink。请参见以下代码:

struct ContentView: View {
    var body: some View {
        NavigationView {
             NavigationLink(destination:SecView()) {
               Text("Primo")
             }
        }
    }
}


struct SecView: View {
    var body: some View {
         NavigationLink(destination:TerView()) {
               Text("Secondo")
           }
    }
}

struct TerView: View {
    var body: some View {
        Text("Hello World!")
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接