SwiftUi Tabview 在开始时未正确加载该视图

SwiftUi Tabview not loading that views properly at start

我是 swiftui 和一般编程的新手,所以如果我使用的语言不正确,请原谅。

我的问题是,我的应用程序一启动,它就会显示一个非常奇怪的视图,顶部有一个导航栏和一个空白屏幕。我必须来回滑动几次才能让应用程序按预期运行。这是问题的Video

所以在我的内容视图文件中,我有一个选项卡栏,其中引用了我的其他 2 个视图。

TabView{
            SearchPageView()
                .tabItem {
                    Image(systemName: "magnifyingglass")
                        .font(.system(size: 25, weight: .bold))
                }
            
            MainPageView()
                .tabItem {
                    Image(systemName: "house")
                }
            
        }.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
            .ignoresSafeArea() 

我为每个视图创建了一个单独的文件。这两个视图都包含在 naviagtionView 中,稍后我使用导航 link 导航到单独的视图。两个页面写的完全一样,只是滚轮的类型不同,一个是水平的,一个是垂直的。

 NavigationView{
            VStack{
                Spacer()
                Text("Friends")
                    .foregroundColor(.white)
                    .font(.largeTitle)
                    .fontWeight(.bold)
                ScrollView(.horizontal,showsIndicators: false){
                    HStack{
                        ForEach(users){ users in
                           NavigationLink(destination: UserDisplayPage(user: users).navigationTitle("")
                                            .navigationBarHidden(true)
                                          
                           ){
                                
                                VStack(alignment: .center){
                                    
                                    Image(users.imageName)
                                        .resizable()
                                        .aspectRatio( contentMode: .fill)
                                        .frame(width: imageSize, height: imageSize
                                        )
                                        .cornerRadius(imageSize/2)
                                        .overlay(
                                            Circle().stroke(Color.white, lineWidth: 5)
                                        )
                                        
                                        .padding()
                                    Text(users.name)
                                        .font(.title)
                                        .fontWeight(.bold)
                                        .foregroundColor(.white)
                                }
                            }
                        }
                        
                    }
                }
                Spacer()
                
            }.background(
                LinearGradient(colors: [.myPurple,.myCyan,.myOrange], startPoint: .topLeading, endPoint: .bottomLeading)
            )
                .navigationTitle("Good Evening, Nihal")
                .foregroundColor(.myOrange)
            
            
        }

感谢任何帮助。提前致谢。

您应该删除 ContentView 中的 .tabViewStyle 修饰符。

TabView 在 SwiftUI 中有两个截然不同的角色。一种是管理标签栏,它允许您点击标签栏中的图标来选择要显示的视图;另一个是提供可滑动的、分页的视图集合。

鉴于您在子视图中使用了 NavigationView,我会说第一种样式就是您想要的样式。这是默认设置,所以删除样式修饰符(将选项卡视图切换为第二种形式),一切都应该很好。您还应该能够删除 .ignoresSafeArea 修饰符。