我将登录页面缩小为单个NavigationLink,该导航链接将List视图作为其目的地。正如您在下图中所看到的,问题是,我得到的是巨大的空间,而不是左边的标题,而右边的空间很好。两种视图是相同的,但是右侧的视图是页面的设计预览。左图是从登录屏幕进入后的页面预览。
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 : $0.name.localizedCaseInsensitiveContains(searchText)})) { customer in
NavigationLink(destination: CustomerDetailView(customer: customer)) {
CustomerRow(customer: customer)
}
.navigationBarTitle("Customers")
}
}
}
}
.navigationBarBackButtonHidden(true)
}
}
答案 0 :(得分:2)
您不需要两次NavigationView
。 NavigationView
应该包装一次顶层视图,并且将覆盖您浏览的所有视图。在NavigationView
上删除VStack
VStack {
List {
ForEach(0..<10) { index in
NavigationLink(destination: Text("Hello \(index)")) {
Text("\(index)")
}
}
}
}
.navigationBarTitle("Customers")
.navigationBarBackButtonHidden(true)