SwiftUI - NavigationLink 的目的地创建带有额外 space 的视图

SwiftUI - destination of NavigationLink creates view with extra space

我已将我的登录页面缩减为单个 NavigationLink,该 NavigationLink 将列表视图作为其目的地。正如您在下图中看到的那样,问题在于,我得到的不是左侧漂亮的 spaced 标题,而是右侧显示的巨大 space。两种视图都相同,但右侧的视图是页面设计时的预览。左图是从登录界面出来后的页面预览。

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

这是列表视图的代码:

var body: some View {
        
        NavigationView {
            VStack {
                SearchBarView(text: $searchText)
                    .padding(.top, 0)
                List {
                    ForEach(customers.filter({searchText.isEmpty ? true : [=12=].name.localizedCaseInsensitiveContains(searchText)})) { customer in
                        NavigationLink(destination: CustomerDetailView(customer: customer)) {
                            CustomerRow(customer: customer)
                        }
                        .navigationBarTitle("Customers")
                    }
                }
            }
        }
        .navigationBarBackButtonHidden(true)
    }
}

你不需要 NavigationView 两次。 NavigationView 应该将顶级视图换行一次,它将覆盖您导航的所有视图。删除 NavigationView 超过 VStack

 VStack {
    List {
        ForEach(0..<10) { index in
            NavigationLink(destination: Text("Hello \(index)")) {
                Text("\(index)")
            }
        }
    }
}
.navigationBarTitle("Customers")
.navigationBarBackButtonHidden(true)