每次将视图推送到视图 [SwiftUI] 时,嵌入在 NavigationView 中的视图(后者隐藏了 navBar)都会出现故障

View embedded in a NavigationView (where latter has navBar hidden) glitches every time it is pushed on to the View [SwiftUI]

在过去的一个小时里,我一直在为这个问题苦苦挣扎,主要是因为我看到的所有解决方案似乎比真正的解决方案更 hack-y,这让我质疑 SwiftUI 中 NavigationBar 的生产准备情况。

我有一个 MainView 和一个 PushView,我需要在两个视图上隐藏导航栏。 但是,这会产生以下问题:

1)当PushView被推到MainView上时,导航栏出现然后消失的地方出现故障。

2)现在无法返回 MainView,因为 PushView 中的后退按钮现在也被隐藏了。

我想要的是在 PushView 中我自己的按钮弹出这个视图并返回到 HomeView

我做错了什么:

struct HomeView: View {
    var body: some View {

        NavigationView {

            NavigationLink(destination: PushView()) {
                Text("PRESSME")
            }.navigationBarTitle("")
            .navigationBarHidden(true)

        }
    }
}

struct PushView: View {

    var body: some View {
        Text("Hello View Two")
    }
}

是的,导航栏有点问题,您已经体验过。

在我看来,一个干净的解决方案看起来像这样:

struct HomeView: View {
    var body: some View {

        NavigationView {

            NavigationLink(destination: PushView()) {
                Text("PRESSME")
            }.navigationBarTitle("")
                .navigationBarHidden(true)

        }
    }
}

struct PushView: View {
    @Environment(\.presentationMode) var presentationMode

    var btnBack : some View {
        Button(action: {
            self.presentationMode.wrappedValue.dismiss()
        }) {
            Image(systemName: "chevron.left")
        }
    }

    var body: some View {
        VStack {
            HStack {
                btnBack // Your custom back button.
                    .padding()
                Spacer()
            }
            Spacer()
            Text("Hello View Two")
            Spacer()
        }
        .navigationBarTitle("")
            .navigationBarHidden(true) // This hides the NavBar on PushView.
    }
}