Мой 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 панели навигации сверху.
![2 nav bars](https://i.stack.imgur.com/sshpv.png)
Есть ли способ использовать 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()
}
}