访问ViewController的@ IBAction属性并将其传递给SecondViewController

时间:2018-01-03 18:59:05

标签: uiviewcontroller properties swift4 ios11

如何从 points 的IBAction方法访问 ViewController 属性并将其传递给 scoreLabel SecondViewController

import UIKit

class ViewController: UIViewController {
    var points: Int = 0

    @IBAction func action(sender: UIButton) {
        points += 1
    }
}



class SecondViewController: UIViewController {
    @IBOutlet weak var scoreLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

1 个答案:

答案 0 :(得分:1)

注意:这假设您从SecondViewController开始ViewController

SecondViewController中,声明一个名为score的变量或类似的变量:

var score: Int = 0

ViewController中,按照以下方式实施prepareForSegue方法:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "YourSegueIdentifierForSecondViewController" {
        if let secondViewController = segue.destination as? SecondViewController {
            secondViewController.score = points
        }
    }
}

然后在SecondViewController的{​​{1}}中,您可以为自己的标签设置分数:

viewDidLoad