У меня есть экран с 1 кнопкой, при нажатии на которую создается новая игра. Он должен создать случайную type
игру, которая будет определять используемые цвета каждый раз, когда я нажимаю New Game
. Проблема в том, что после загрузки представление никогда не обновляется, чтобы выбрать случайную новую тему после ее однократного нажатия. Я попытался создать @State var theme
и использовал onAppear
для повторной визуализации представления, но это похоже на взлом ...
Есть ли способ правильно динамически загружать навигационные ссылки?
struct NewGameView: View {
@State var theme: EmojiMemoryGameTheme
var body: some View {
NavigationView {
NavigationLink(destination: EmojiMemoryGameView(viewModel: EmojiMemoryGame(theme: theme))) {
VStack {
Text("New Game")
.font(Font.largeTitle)
.padding(.vertical, 10.0)
.padding(.horizontal, 40.0)
.background(Color.blue)
.cornerRadius(20.0)
.foregroundColor(Color.white)
}
}
.navigationBarTitle("Memorize")
.onAppear {
self.newTheme()
}
}
}
func newTheme() {
theme = EmojiMemoryGameTheme.allCases.randomElement() ?? .halloween
}
}