Swiftui NavigationStack - Почему View State сохраняется при навигации вперед и назад?IOS

Программируем под IOS
Ответить
Anonymous
 Swiftui NavigationStack - Почему View State сохраняется при навигации вперед и назад?

Сообщение Anonymous »

У меня есть навигационная иерархия, структурированная как следующее: < /p>
Root View -> View A -> View B -> View C -> View D
< /code>
RootView() .navigationDestination(
                for: DashboardDestinations.self,
                destination: { screen in
                    switch screen {
                    case .ScreenA:
ScreenA()
            case .ScreenB:
ScreenB()
                })
        }
< /code>
class DashboardRouter: ObservableObject {
var path = NavigationPath()

static let shared: DashboardRouter = DashboardRouter()

func popToRoot() {
path = NavigationPath()
}

func popToView B() {
path = NavigationPath([DashboardDestinations.ViewA, DashboardDestinations.ViewB])
}
}
< /code>
In my DashboardRouter class, I manage navigation using a NavigationPath.
When I’m in View D and trigger a button to go back to View B by resetting the navigation path:
DashboardRouter.shared.popToViewB()
< /code>
and then navigate forward again to View C, I notice that View C’s state is preserved from the previous time it was shown, instead of being reset.
Why does the state of View C persist after popping back to View B and navigating forward again? How can I make sure View C resets its state when I navigate to it again?

Подробнее здесь: https://stackoverflow.com/questions/796 ... back-and-f
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»