如何在 SwiftUI 中弹出到 rootView,而不在我的 rootView 中获得一开始就不存在的导航栏?

问题描述 投票:0回答:0

问题:即使我在主视图上设置 .toolbar(.hidden, for: navBar) ,当弹出到 rootViewController 时,我也会得到一个奇怪的 navBar 。

这是我现在正在尝试修复它的代码

import SwiftUI

struct DemoPop: View {

    @State private var path = NavigationPath()
    
    var body: some View {
        
        VStack {
            
            NavigationStack(path: $path) {
                   
                List {
                    Section("List One") {
                        NavigationLink("Navigate to View 1", value: "View 1")
                        NavigationLink("Navigate to View 2", value: "View 2")
                    }
                }
                .navigationDestination(for: String.self) { textDesc in
                    
                    VStack {
                        Text(textDesc).padding()
                        Button("Navigate to View 3") {
                            path.append("View 3")
                        }.padding()
                        
                        Button("Pop to Root View") {
                            path.removeLast(path.count)
                        }.padding()
                    }
                }
                .navigationTitle("Test Pop To Root")
            }
        }
    }
    }

struct DemoPop_Previews: PreviewProvider {
    static var previews: some View {
        DemoPop()
    }
}

我尝试了几种不同的方法,比如构建一个路由器类并通过它来摆脱这个问题,但我还没有成功,我尝试的最后一件事只是从 stacked 中获取了一些简单、可读的代码来解决问题。但到目前为止还没有运气。

ios swiftui navigationbar
© www.soinside.com 2019 - 2024. All rights reserved.