【发布时间】:2020-05-27 02:04:33
【问题描述】:
我有一个带有 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
}
}
【问题讨论】:
-
你的目的是每次都按新游戏,也应该调用“新主题”的功能?
-
@SpencerReid 目的是每次进入游戏画面时生成一种新类型的游戏
标签: swiftui swiftui-navigationlink