在SwiftUI中使用TabView时NavigationView无法正确显示

iAl*_*x11 5 tabview swift swiftui ios-navigationview

大家好。我正在开发一个显示一些鸣叫的简单SwiftUI应用程序。它具有一个带两个视图的选项卡视图:将显示推文的主页和一个辅助视图。

问题在于主页上有一个NavigationView。如果我选择仅显示主页,则一切似乎都正确,但是当我从显示TabView并向下滚动时,NavigationView感觉有点奇怪。

由于我不擅长解释,因此这里有一些图片:

应该是这样 应该是这样

但是就是这样 但是就是这样

我想添加.edgesIgnoringSafeArea(.top),但是NavigationView现在被该缺口隐藏了,并且没有效果。

有什么办法可以使NavigationView像第一个图像一样显示?

任何帮助表示赞赏。提前致谢。

我的密码

HomePageView

struct HomePageView: View {

    var body: some View {
        NavigationView {
            List {
                //tweet code
            }
            .navigationBarTitle("Your feed")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

TabView

struct TabController: View {
    @State private var selection = 0

    var body: some View {
        TabView(selection: $selection){
            HomePageView()
                .tabItem {
                    VStack {
                        Image(systemName: "house.fill")
                            .font(.title)
                    }
                }
                .tag(0)
            Text("Second View")
                .font(.title)
                .tabItem {
                    VStack {
                        Image(systemName: "bell.fill")
                            .font(.title)
                    }
                }
                .tag(1)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Ami*_*n3t 6

尝试添加.edgesIgnoringSafeArea(.top)到标签视图中。

struct ContentView: View {
    @State private var selection = 0

    var body: some View {
        TabView(selection: $selection){
            HomePageView()
                .tabItem {
                    VStack {
                        Image(systemName: "house.fill")
                            .font(.title)
                    }
                }
                .tag(0)
            Text("Second View")
                .font(.title)
                .tabItem {
                    VStack {
                        Image(systemName: "bell.fill")
                            .font(.title)
                    }
                }
                .tag(1)
        }.edgesIgnoringSafeArea(.top)
    }
}
Run Code Online (Sandbox Code Playgroud)