我的 ContentView 包括一个 NavigationView,我通过 NavigationLink 向下钻取到显示列表的 OverviewView,然后从那里通过 NavigationLink 到 DetailView。现在我想点击 DetailView 中的文本并调出另一个视图,但是当我现在尝试向该对象添加 NavigationLink 时,我收到一个错误,即 NavigationLink 需要嵌入到 NavigationView 中,因此我将代码更改为
NavigationView{
ScrollView() {
VStack{
VStack(spacing: -25) {
HStack(spacing: -25) {
NavigationLink(destination: WarehouseOrderLinesView(warehouseOrderLines: warehouseOrderLineController.warehouseOrderLines)){
TaskSummaryView(title: "Total Lines", color: .blue, icon: "list.dash", value: warehouseOrderLineController.warehouseOrderLines.count)
}
但现在由于另一个 NavigationView 中有一个 NavigationView,我最终在顶部有 2 个导航栏。
有没有办法使用 NavigationLink 而不将其嵌入另一个 NaviagationView 或通过不使用 NavigationLink 和类似 .sheet 的东西导航到另一个视图(我不想将新视图显示为模态!)。
下面是完整的测试示例代码:
//
// ContentView.swift
// Two Navbars
//
// Created by Max on 2020-02-05.
// Copyright © 2020 Max. All rights reserved.
//
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView{
ScrollView{
VStack{
NavigationLink(destination: ListView1()){
Text("Tap me")
}
Text("Nothing here")
}
}
}
}
}
struct ListView1: View {
var body: some View {
List{
NavigationLink(destination: DetailView1()){
Text("Tap me one more time")
}
Text("Item 2")
Text("Item 3")
}
}
}
struct DetailView1: View {
var body: some View {
NavigationView{
ScrollView() {
VStack{
NavigationLink(destination: DetailView2()){
Text("Drill down more")
}
Text("Nothing here")
}
}
}
}
}
struct DetailView2: View {
var body: some View {
List {
Text("That's it")
Text("Nothing here")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}