我有两个视图控制器,我想使用一个按钮将数字从一个视图控制器传递到另一个视图控制器。但是在我传递了这个数字之后,我希望将这个数字添加到下一个数字中,这样每次按下按钮时它都会继续添加。到目前为止它只是通过传递字符串,但我无法弄清楚如何将该字符串转换为数字,然后添加该数字。该字符串存储在Firebase中,因为我希望能够更改要添加的数字。
这是我的代码:
使用按钮查看控制器
@IBAction func verifyButton(_ sender: Any) {
print("Button Clicked")
let ref3 = Database.database().reference()
ref3.child("Pay/Ad001").queryOrderedByKey().observeSingleEvent(of: .value, with: { (snapshot) in
})
let myVC = storyboard?.instantiateViewController(withIdentifier: "ProfileViewController") as! ProfileViewController
myVC.stringPassed = LabelOne.text!
navigationController?.pushViewController(myVC, animated: true)
UserDefaults.standard.setValue(LabelOne.text!, forKey: "stringPassed")
}
第二个视图控制器,我想要添加数字:
override func viewDidLoad() {
super.viewDidLoad()
//pass number here and add
totalEarned.text = stringPassed
totalEarned!.text=UserDefaults.standard.string(forKey: "stringPassed")
答案 0 :(得分:5)
但我无法弄清楚如何将该字符串转换为数字,然后添加该数字
整个问题是一个糟糕的嗅觉。您违反了MVC(模型 - 视图 - 控制器)。
将数字存储并传递为数字。数字是模型数据;它需要是一个数字,因为你以后会添加一些东西。
如果要在界面中显示该号码,则显示是可见的,可能需要一个字符串。因此视图控制器只会将其转换为字符串,以便在它告诉视图显示什么时显示。