在button设置标签号后,如何将标签数据转移到新的控制器标签上

所以我如何将我的ViewController标签:totalPar转移到ThirdViewController标签:totalPar5。 我想用我的减号和加号button来传输我已经添加的数据

这里是模拟器图片,显示我想转移

在这里输入图像说明

除了准备segue,我的ThirdViewController和ViewController几乎一样

这是我的ViewController

import UIKit class ViewController: UIViewController { @IBOutlet weak var totalPar: UILabel! @IBOutlet weak var plusminusPar: UILabel! @IBOutlet weak var currentPar: UILabel! var totalPAR = Int() var plusminusPAR = 0 var currentPAR = 0 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } @IBAction func minusButton(_ sender: Any) { totalPAR = Int(totalPar.text!)! self.totalPar.text = String(totalPAR - 1) plusminusPAR = Int(plusminusPar.text!)! self.plusminusPar.text = String(plusminusPAR - 1) currentPAR = Int(currentPar.text!)! self.currentPar.text = String(currentPAR - 1) } @IBAction func plusButton(_ sender: Any) { totalPAR = Int(totalPar.text!)! self.totalPar.text = String(totalPAR + 1) plusminusPAR = Int(plusminusPar.text!)! self.plusminusPar.text = String(plusminusPAR + 1) currentPAR = Int(currentPar.text!)! self.currentPar.text = String(currentPAR + 1) } @IBAction func Seuraava(_ sender: Any) { self.performSegue(withIdentifier: "next1", sender: Any?.self) } @IBAction func seiraava2(_ sender: Any) { self.performSegue(withIdentifier: "seuraava2", sender: Any?.self) } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { let thirdviewcontroller = segue.destination as! ThirdViewController thirdviewcontroller.totalPAR5 = self.totalPAR } } 

从接受的答案及其评论中,您需要开始改进您的代码,并总体学习一些数据源的概念。

为了你的情况,不停地将string转换为整数string。 select一个或另一个:

 class ViewController: UIViewController { var totalPAR: Int = 0 var plusminusPAR: Int = 0 var currentPAR: Int = 0 

做自然的行动和分开的方法:

 @IBAction func minusButton(_ sender: Any) { addToAll(valueToAdd: -1) refreshLabels() } private func addToAll(valueToAdd: Int) { totalPAR += valueToAdd plusminusPAR += valueToAdd currentPAR += valueToAdd } private func refreshLabels() { self.totalPar.text = String(totalPAR) self.plusminusPar.text = String(plusminusPAR) self.currentPar.text = String(currentPAR) } 

那么你将没有问题的电话

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if let thirdviewcontroller = segue.destination as? ThirdViewController { thirdviewcontroller.totalPAR = self.totalPAR thirdviewcontroller.plusminusPAR = self.plusminusPAR thirdviewcontroller.currentPAR = self.currentPAR } } 

现在,如果在这两个视图控制器上您调用viewDidLoadrefreshLabels值成功传输。

只需在ThirdViewController创buildvariables,然后将值分配给segua并将设置值分配给viewDidLoad的标签:

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { let thirdviewcontroller = segue.destination as! ThirdViewController thirdviewcontroller.totalPAR5 = self.totalPAR } class ThirdViewController: UIViewController { var totalPAR5 = 0 override func viewDidLoad() { super.viewDidLoad() self.totalPar.text = "\(totalPAR5+1)" //You can calculate here like +1 or -1 // Do any additional setup after loading the view. } }