如何在TabView SwiftUI中保存视图的列表状态

如何在TabView SwiftUI中保存视图的列表状态,swiftui,swiftui-list,Swiftui,Swiftui List,我在SwiftUI中有一个带有选项卡的选项卡视图。当我从一个FirstView滚动列表并点击另一个选项卡,然后切换回FirstView时,FirstView中的列表会自动重画并滚动到顶部。如何解决这个问题 这是第一视图 var body: some View { NavigationView { List { ForEach(feed) { game in FeedCardItem(gameModel: game

我在SwiftUI中有一个带有选项卡的选项卡视图。当我从一个FirstView滚动列表并点击另一个选项卡,然后切换回FirstView时,FirstView中的列表会自动重画并滚动到顶部。如何解决这个问题

这是第一视图

 var body: some View {
    NavigationView {
        List {
            ForEach(feed) { game in
                FeedCardItem(gameModel: game)
                    .frame(width: UIScreen.main.bounds.width - 30, height: 400)
            }
        }
        .navigationBarTitle(Text("Новое сегодня"))
    }
}
这是TabView实现

    TabView (selection: $currentTab) {
        FeedView().tabItem {
            Image(systemName: currentTab == 0 ? "house.fill" : "house")
                .renderingMode(.original)
                .imageScale(.large)
        }.tag(0)

        RecommendationsView().tabItem {
            Image(systemName: currentTab == 1 ? "gamecontroller.fill" : "gamecontroller")
                .renderingMode(.original)
                .imageScale(.large)
        }.tag(1)

        SearchView().tabItem {
            Image(systemName: currentTab == 2 ? "flame.fill" : "flame")
                .renderingMode(.original)
                .imageScale(.large)
        }.tag(2)

        NotificationsView().tabItem {
            Image(systemName: currentTab == 3 ? "bell.fill" : "bell")
                .renderingMode(.original)
                .imageScale(.large)
        }.tag(3)

        ProfileView().tabItem {
            Image(systemName: currentTab == 4 ? "person.fill" : "person")
                .renderingMode(.original)
                .imageScale(.large)
        }.tag(4)

    }.edgesIgnoringSafeArea(.top)
}

我认为通过SwiftUI是不可能的。另一种方法是在UIKit中创建选项卡视图,并在SwiftUI中使用它

我创建了一个快速示例,说明如何实现这一点,以及如何解决您的问题。如果你还有其他问题,请告诉我

我已经将代码上传到GitHub。

在上传的代码中,文件夹UITab包含通过UIKit创建的选项卡视图。
在ContentView中,我将其转换为UIViewControllerRepresentable并使用它。

可以使用UITableViewConfigurator,如下所述:


但是,当然……它使用UIViewControllerRepresentable……

提供一些可以运行和调试的最小代码。这将有助于提供一个快速的答案。@FelixMarianayagam补充说应该这样做。这是一个bug吗?苹果没有提供标签的正确操作?是的,苹果到目前为止还没有为SwiftUI提供。但是如果我想在SwiftUI中创建非常漂亮的自定义标签栏,我不能在保持状态的同时使用它?到目前为止,SwiftUI有这个限制。