Küçük bir sınav yaptım. Bir düğmeye bastığınızda, Xcode ve Ycode'a belirli bir miktar eklenir. Şimdi Xcode ve Ycode'un değerini bir sonraki görünüme taşımak istiyorum. Böylece bir sonraki görünümdeyken başka bir soruyu cevaplayabilir ve mevcut miktarın üstüne bir miktar eklenir ve daha sonra bu değeri başka bir görünüme taşımak istiyorum.
Peki Xcode ve Ycode'un değerini bir sonraki görünüme nasıl götürebilirim? Bu benim yaptığım kod:
@State var ShowButton: Bool = false
@State var ButtonYes: Bool = false
@State var ButtonNo: Bool = false
@State var ButtonSometimes: Bool = false
@State var Xcode = 0
@State var Ycode = 0
var body: some View {
ZStack{
Image("Chimps")
.resizable()
.ignoresSafeArea()
.navigationBarHidden(true)
VStack{
Text("Question 1")
.font(.largeTitle)
.fontWeight(.heavy)
.padding()
.foregroundColor(.white)
.background(Color(red: 0.493, green: 0.184, blue: 0.487))
.cornerRadius(20)
Spacer()
Text(String(Xcode))
Text(String(Ycode))
Text("Question 1")
.foregroundColor(Color.white)
.font(.headline)
.padding()
.background(Color(red: 0.493, green: 0.184, blue: 0.487))
.cornerRadius(20)
Spacer()
Spacer()
HStack(spacing:10) {
Button("Yes") {
ShowButton = true
ButtonYes.toggle()
if ButtonYes == true {
Xcode += 5
}
if ButtonYes == true {
Ycode += 5
}
if ButtonYes == false {
Xcode -= 5
}
if ButtonYes == false {
Ycode -= 5
}
if ButtonNo == true {
Xcode -= 3
}
if ButtonNo == true {
Ycode -= 3
}
if ButtonSometimes == true {
Xcode -= 1
}
if ButtonSometimes == true {
Ycode -= 1
}
if ButtonYes == true {
ButtonNo = false
}
if ButtonYes == true {
ButtonSometimes = false
}
}
.frame(width: 50, height: 50, alignment: .center)
.foregroundColor(.white)
.padding()
.background(ButtonYes ? Color(red: 0.272, green: 0.471, blue: 0.262) : Color(red: 0.493, green: 0.184, blue: 0.487))
.cornerRadius(20)
.shadow(color: .black, radius: 10, x: 10, y: 10)
Button("No") {
ShowButton = true
ButtonNo.toggle()
if ButtonNo == true {
Xcode += 3
}
if ButtonNo == true {
Ycode += 3
}
if ButtonNo == false {
Xcode -= 3
}
if ButtonNo == false {
Ycode -= 3
}
if ButtonYes == true {
Xcode -= 5
}
if ButtonYes == true {
Ycode -= 5
}
if ButtonSometimes == true {
Xcode -= 1
}
if ButtonSometimes == true {
Ycode -= 1
}
if ButtonNo == true {
ButtonYes = false
}
if ButtonNo == true {
ButtonSometimes = false
}
}
.frame(width: 50, height: 50, alignment: .center)
.foregroundColor(.white)
.padding()
.background(ButtonNo ? Color(red: 0.272, green: 0.471, blue: 0.262) : Color(red: 0.493, green: 0.184, blue: 0.487))
.cornerRadius(20)
.shadow(color: .black, radius: 10, x: 10, y: 10)
Button("Sometimes") {
ShowButton = true
ButtonSometimes.toggle()
if ButtonSometimes == true {
Xcode += 1
}
if ButtonSometimes == true {
Ycode += 1
}
if ButtonSometimes == false {
Xcode -= 1
}
if ButtonSometimes == false {
Ycode -= 1
}
if ButtonYes == true {
Xcode -= 5
}
if ButtonYes == true {
Ycode -= 5
}
if ButtonNo == true {
Xcode -= 3
}
if ButtonNo == true {
Ycode -= 3
}
if ButtonSometimes == true {
ButtonYes = false
}
if ButtonSometimes == true {
ButtonNo = false
}
}
.frame(width: 50, height: 50, alignment: .center)
.foregroundColor(.white)
.padding()
.background(ButtonSometimes ? Color(red: 0.272, green: 0.471, blue: 0.262) : Color(red: 0.493, green: 0.184, blue: 0.487))
.cornerRadius(20)
.shadow(color: .black, radius: 10, x: 10, y: 10)
}
Spacer()
if ShowButton {
NavigationLink(
destination: Question2(),
label: {
Rectangle()
.fill(Color(red: 0.493, green: 0.184, blue: 0.487))
.frame(width: 150, height: 80, alignment: .bottom)
.cornerRadius(20)
.padding(10)
.shadow(color: .black, radius: 10, x: 10, y: 10)
.overlay(
Text("Question 2")
.font(.largeTitle)
.foregroundColor(.white)
.shadow(color: .black, radius: 10, x: 10, y: 10)
)}
)
Spacer()
}
}
}
}
}