双导航栏 SwiftUI

Double Navigation Bar SwiftUI

这是我的场景。 我有 3 个屏幕,第一个屏幕,第二个屏幕和第三个屏幕。 我筛选了一个我有一个按钮,可以导航到第二个屏幕。在第二个屏幕中,我有一个按钮可以导航到第三个屏幕。 对于屏幕二,导航栏运行良好且完美。但是在屏幕三中就像导航栏显示了两次。 我该如何解决这个问题?

这是我的代码,

import SwiftUI

struct ContentView: View {
    var body: some View {
        FirstView()
    }
}

struct FirstView: View {
    var body: some View {
        NavigationView {
            VStack {
                Text("This is First View")
                NavigationLink(destination: SecondView()) {
                    Text("Show Second View")
                }
            }
            .navigationBarTitle("Root View", displayMode: .inline)
        }
    }
}

struct SecondView: View {
    var body: some View {
        NavigationView {
            VStack {
                Text("This is Second View")
                NavigationLink(destination: ThirdView()) {
                    Text("Show Third View")
                }
            }
            .navigationBarTitle("Second View", displayMode: .inline)
        }
    }
}

struct ThirdView: View {
    var body: some View {
        NavigationView {
            Text("Third View")
            .navigationBarTitle("Third View", displayMode: .inline)
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

这是结果

您不需要第二个 NavigationView,导航堆栈中应该只有一个,即

struct SecondView: View {
    var body: some View {
       // NavigationView {      // << remove this one !!
            VStack {
                Text("This is Second View")
                NavigationLink(destination: ThirdView()) {
                    Text("Show Third View")
                }
            }
            .navigationBarTitle("Second View", displayMode: .inline)
    //    }
    }
}