Как сохранить состояние списка для просмотра в TabView SwiftUI - PullRequest
0 голосов
/ 13 марта 2020

У меня есть TabView в SwiftUI с вкладками. Когда я прокручиваю список из одного FirstView и нажимаю на другую вкладку, и переключаюсь обратно в FirstView, мой список в FirstView автоматически перетаскивает aws и прокручивается вверх. Как это исправить.

введите описание ссылки здесь

Это 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)
}

Ответы [ 2 ]

1 голос
/ 13 марта 2020

Я не думаю, что это возможно через SwiftUI. Альтернативой для этого является создание представления вкладок в UIKit и использование его в SwiftUI.

Я создал краткий пример того, как этого можно достичь и как он решает вашу проблему. Дайте мне знать, если у вас есть другие вопросы.

Я загрузил код на GitHub. https://github.com/subhan5/TabTest

В загруженном коде папка UITab содержит вкладку, созданную с помощью UIKit. В ContentView я конвертирую так же, как UIViewControllerRepresentable и использую его.

0 голосов
/ 13 марта 2020

это возможно с помощью UITableViewConfigurator, который описан здесь: Прокрутите список SwiftUI до нового выделения

Но, конечно ... это использует UIViewControllerRepresentable ....

...