【问题标题】:Multiple NavigationBars showing when linking SwithUI Views链接 SwithUI 视图时显示多个导航栏
【发布时间】:2020-05-17 23:25:42
【问题描述】:

我有两个 SwiftUI 视图,它们是我用 NavigationLink 链接的单独文件:

视图1:

struct ViewOne: View {

    var body: some View {
        NavigationView {
        VStack {
        NavigationLink(destination: ViewTwo()
       .navigationBarBackButtonHidden(true)
) {
                Text("Go to second view")
            }
.navigationBarTitle(Text("First View"), displayMode: .inline)
            }}}}

视图2:

struct ViewTwo: View {

        var body: some View {
            NavigationView {
            VStack {
                    Text("Hello world")
                }
    .navigationBarTitle(Text("Second View"), displayMode: .inline)
                }}}

问题:在 View2 上,我不需要 .navigationBarBackButton,因此我将其设置为在 ViewOne 中隐藏,但因为我已将其设置为隐藏,它与 ViewTwo 上的现有 NavigationBar 混淆并显示多个 NavigationBar

如何禁用 navigationBarBackButton 而不会影响 View2 上现有的 NavigationBar?

【问题讨论】:

    标签: swift xcode swiftui navigationbar navigationview


    【解决方案1】:

    NavigationView 在一个视图层次结构中应该只有一个,所以只需在ViewTwo 中删除它:

    struct ViewTwo: View {
    
            var body: some View {
                VStack {
                   Text("Hello world")
                }
                .navigationBarTitle(Text("Second View"), displayMode: .inline)
            }
    }
    

    【讨论】:

    • 谢谢,它可以工作,但我猜 SwiftUI 还没有那么先进,无法在 Xcode 的画布编辑器中显示对 ViewTwo 上的 NavigationBar 的更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 2011-05-30
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    相关资源
    最近更新 更多