我想拥有3个View Controller; A,B和C。将显示最终值的视图控制器A,即主视图控制器。 View Controller B和View Controller C将使用简单的文本字段作为输入。您在View Controller B和C中的“文本字段”中输入的值将被添加在一起,并显示在View Controller A中。您还需要具有按钮以实现操作。该怎么办?
例如,如果用户在View Controller B中输入数字2,在View Controller C文本字段中输入数字3,则View Controller A将显示数字5。
答案 0 :(得分:0)
答案 1 :(得分:0)
首先在ViewController B中创建变量"numberOfCViewController"
,然后在ViewController A中创建两个变量"numberOfCViewControllerInA"
和"numberOfBViewControllerInA"
然后只需在所有控制器之间创建segues
并简单地添加此函数即可传递TextFields数据:
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
if segue.identifier == "CViewControllerToBViewController"
{
let BViewController = segue.destination as! BViewController
BViewController.numberOfCViewController = numberTextField.text!
}
}
这样做可以将numberTextField.text!
传递给ViewControllerB。
现在要做的就是在其他ViewController中重复相同的技术,直到达到C为止。
然后,您只需将两个数字相加,然后将结果分配给ViewController C中的Label。
答案 2 :(得分:0)
取决于您的用途:
Segue:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
guard segue.identifier == "ViewControllerBToViewControllerC" else {
return
}
guard let viewControllerB = segue.destination as? ViewControllerB else {
return
}
viewControllerB.passedValue = <insert passed value>
}
导航控制器:
guard let navigationController = navigationController else {
return
}
guard let viewControllerB = UIStoryboard(name: "\(ViewControllerB.self)", bundle: nil) as? ViewControllerB else {
return
}
viewControllerB.passedValue = <insert passed value>
navigationController.pushViewController(viewControllerB, animated: true)