Я создаю игру и в конце хочу, чтобы появился лист, завершающий игру. Со временем у него появится еще несколько вариантов, но сначала мне нужно заставить это работать. Это первое приложение, которое я создаю, поэтому я не уверен, что это лучший способ справиться с ним.
Я добавил этот код, и по большей части он работает. . Однако я обнаружил, что ничего не меняется, когда я нажимаю «Новая игра». Если я удалю закрытие листа, я обнаружу, что представление загружается на закрываемом листе. Что я могу изменить, чтобы после закрытия листа загружалось новое представление вместо текущего представления игры?
import SwiftUI
struct GameEndCustomSheet: View {
@Environment(\.presentationMode) var presentationMode
@State private var navigateToNewGame = false
var body: some View {
NavigationStack {
VStack {
Text("Game Ended")
Button(action: {
// Dismiss the sheet
presentationMode.wrappedValue.dismiss()
}) {
Text("New Game")
}
}
.onDisappear {
// Navigate to the new view when the sheet disappears
navigateToNewGame = true
}
.navigationDestination(isPresented: $navigateToNewGame) {
ContentView()
}
}
}
}
struct GameEndCustomSheet_Previews: PreviewProvider {
static var previews: some View {
GameEndCustomSheet()
}
}
Подробнее здесь: https://stackoverflow.com/questions/789 ... -dismissed