Swiftui 导航栏放置在根视图中时不显示

Swiftui 导航栏放置在根视图中时不显示,swiftui,Swiftui,不确定这是否是在整个应用程序中访问NavigationLink的正确方法,但我将NavigationBar放在了根视图中,而根视图恰好是选项卡控制器。请参阅下面的代码 import SwiftUI import Firebase import Combine struct ContentView: View { @EnvironmentObject var session: SessionStore func getUser() { session.listen() } v

不确定这是否是在整个应用程序中访问NavigationLink的正确方法,但我将NavigationBar放在了根视图中,而根视图恰好是选项卡控制器。请参阅下面的代码

import SwiftUI
import Firebase
import Combine

struct ContentView: View {
    @EnvironmentObject var session: SessionStore

func getUser() {
    session.listen()
}

var body: some View {
    NavigationView {
        Group {

        TabView {
            ExploreView().tabItem {
                Image(systemName: "house.fill")
                Text("Explore")
            }.tag(1)
            FestivalsView().tabItem {
                Image(systemName: "globe")
                Text("Festivals")
            }.tag(2)
            MapView().tabItem {
                Image(systemName: "map")
                Text("Map")
            }.tag(3)
            ProfileView().tabItem {
                Image(systemName: "person.crop.circle.fill")
                Text("Profile")
            }.tag(4)
        }
            .accentColor(Color("wdwPurple"))
            .edgesIgnoringSafeArea(.top)

            }.onAppear(perform: getUser)
        }
    }
}
但是,在我的ExploreView中,导航栏不显示,内容浮动在状态栏下,如图所示

这是ExploreView的代码

import SwiftUI
import Firebase
import Combine
import FirebaseFirestore
import UIKit

struct ExploreView: View {

    let db = Firestore.firestore()
    var model = Passport.all()

    var body: some View {
            VStack {
                ScrollView (.vertical, showsIndicators: false) {
                    Header()
                        .padding(.horizontal, 24)
                    HStack {
                        Image("Ad_Banner")
                            .resizable()
                        .scaledToFill()
                            .frame(minWidth: 0, maxWidth: 366)

                            .padding(.bottom, 5)
                    }.padding(.horizontal, 24)
                    HStack {
                        ScrollView(.horizontal, showsIndicators: false) {
                            HStack {
                                NavigationLink (destination: EventsView()) {
                                    ExploreBoxes(tileLabel: "Events", tileIcon: "calendar")
                                        .padding(.leading, 24)
                                        .padding(.trailing, 10)
                                }
                              NavigationLink (destination: FavoritesView()) {
                                ExploreBoxes(tileLabel: "Favorites", tileIcon: "heart.fill")
                                        .padding(.trailing, 10)
                                }
                                NavigationLink (destination: ParkMapsView()) {
                                    ExploreBoxes(tileLabel: "Park Maps", tileIcon: "mappin.and.ellipse")
                                        .padding(.trailing, 10)
                                }

                            }.frame(height: 180)
                        }
                    }
                    NavigationLink (destination: AboutView()) {
                        HStack {
                                Image("Image_Passports_Learn")
                                    .renderingMode(.original)
                                    .resizable()
                                    .scaledToFill()
                                    .frame(minWidth: 0, maxWidth: 366)
                                    .cornerRadius(4)

                        }.padding(.horizontal, 24)
                            .padding(.bottom, 90)
                    }
                }.navigationBarTitle(Text(""))
                Spacer()

            }.edgesIgnoringSafeArea(.bottom)

                .background(Color("bodyBackground"))  
    }
}
这实际上不起作用(正如您已经发现的那样)。同样,在UIKit中,这也不起作用。您需要为每个选项卡创建
NavigationView
s。通常,您的
选项卡视图
是顶级视图,每个选项卡都可以包装在
导航视图
中。一旦这样做,您可能也不需要忽略顶部边缘的安全区域,因为
NavigationView
将位于正确的位置,并在条形图结束到其子视图的位置正确通信