import SwiftUI
var weapons = ["lightsabre", "gun", "sword", "dagger", "metal stick"]
var weapon:String = "fist"
var diamonds:Int = 0
var jailtime:Int = 5
var gun:Int = 0
var vault:Int = 0
var goojfc:Int = 0
var health:Int = 50
var page:String = "main"
struct main: View {
var body: some View {
Text("Welcome to Diamond Risk!" + page)
Button("Play"){
page = "play"
}
Button("Rules"){
page = "rules"
}
}
}
struct rules: View {
var body: some View {
Text("Welcome to Diamond Risk!")
Button("Home Page"){
page = "main"
}
Button("Play"){
page = "play"
}
}
}
struct ContentView: View {
var body: some View {
Text(page)
if (page == "main") {
main()
} else if (page == "rules") {
rules()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
I used this exact code for a project before, and it worked fine.
But now the variable page is just not changing.
How do I fix it so it works and changes?
I would be surprised it ever worked. You need to have a State var in ContrentView and Bindings in other views for the page var.
I tested this:
var weapons = ["lightsabre", "gun", "sword", "dagger", "metal stick"]
var weapon:String = "fist"
var diamonds:Int = 0
var jailtime:Int = 5
var gun:Int = 0
var vault:Int = 0
var goojfc:Int = 0
var health:Int = 50
//var page:String = "main"
struct main: View {
@Binding var page: String
var body: some View {
Text("Welcome to Diamond Risk!" + page)
Button("Play"){
page = "play"
}
Button("Rules"){
page = "rules"
}
}
}
struct rules: View {
@Binding var page: String
var body: some View {
Text("Welcome to Diamond Risk!")
Button("Home Page"){
page = "main"
}
Button("Play"){
page = "play"
}
}
}
struct ContentView: View {
@State var page: String = "main"
var body: some View {
Text(page)
if (page == "main") {
main(page: $page)
} else if (page == "rules") {
rules(page: $page)
}
}
}