我在向我的整数变量添加或添加数字时遇到问题!
我必须查看控制器,在第一个中我有这些代码:
var checkSahafi = Int()
if sahafi.isSelected == true {
print("sahafi Selected")
self.checkSahafi += 1
performSegue(withIdentifier: "secondStep", sender: self)
} else if safheArayi.isSelected == true {
print("safheArayi Selected")
self.checkSahafi += 2
performSegue(withIdentifier: "secondStep", sender: self)
} else if laminet.isSelected == true {
print("laminet Selected")
self.checkSahafi += 3
performSegue(withIdentifier: "secondStep", sender: self)
} else if simpichi.isSelected == true {
print("simpichi Selected")
self.checkSahafi += 4
performSegue(withIdentifier: "secondStep", sender: self)
}
在第二个View Controller中我有这个方法:
let checkNum = firstViewController().checkSahafi
override func viewDidLoad() {
super.viewDidLoad()
print("\(checkNum)")
print("\(checkNum)")
print("\(checkNum)")
print("\(checkNum)")
}
但该应用只是打印0 我如何追加这些数字?!
请记住,我也使用了checksahafi.append方法并且没有得到结果!
答案 0 :(得分:1)
您从FirstViewController
的全新实例中获得价值的问题是,您需要使用控制器覆盖prepareForSegue
并传递值。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let vc = segue.destination as? SecondViewController {
vc.checkNum = self.checkSahafi
}
}
现在只需更改checkNum
中SecondViewController
的声明即可。
var checkNum = Int()
override func viewDidLoad() {
super.viewDidLoad()
print("\(checkNum)")
}
不是在每个if条件中多次调用performSegue(withIdentifier:sender:)
,而是在所有if条件之后最后调用它
if sahafi.isSelected == true {
print("sahafi Selected")
self.checkSahafi += 1
}
else if safheArayi.isSelected == true {
print("safheArayi Selected")
self.checkSahafi += 2
}
else if laminet.isSelected == true {
print("laminet Selected")
self.checkSahafi += 3
} else if simpichi.isSelected == true {
print("simpichi Selected")
self.checkSahafi += 4
}
performSegue(withIdentifier: "secondStep", sender: self)