如何在Swift中更改数据后重新加载视图

时间:2017-11-09 02:53:57

标签: ios swift viewdidload

我有一个包含标签的视图,并有一个更改标签值的按钮。不是在按钮中逐个更改值,而是如何重新加载整个视图以更新标签。

@IBOutlet weak var one: UILabel!
    @IBOutlet weak var two: UILabel!
    @IBOutlet weak var three: UILabel!
....
    @IBOutlet weak var updateLabels: UIButton!{
        //doing something to change the value of the labels
        //then wanna reload the whole view
        viewDidLoad()
    }

我调用了viewDidLoad()方法,但没有用。

3 个答案:

答案 0 :(得分:3)

你不应该自己打电话给viewDidLoad。它是操作系统调用的框架功能,表示您的视图已准备好进行设置。

如果你分开你的功能

会更好
func updateLabels() {
        one.text = "one"
        two.text = "two"
        three.text = "three"
}

现在您可以根据需要调用updateLabels功能。

答案 1 :(得分:0)

为什么不在方法上放置所有标签。当你需要重新加载时发射它。

override func viewDidLoad() {
    super.viewDidLoad()

    updateLabels()

}

func updateLabels() {
    one.text = "one"
    two.text = "two"
    three.text = "three"
}


@IBAction func updateLabels(_ sender: Any) {
       updateLabels()
}

答案 2 :(得分:-1)

更新标签的方法不正确。您需要做的是:

声明您的标签,确保它们在Interface Builder中链接:

//Declare The Labels
@IBOutlet var one: UILabel!
@IBOutlet var two: UILabel!
@IBOutlet var three: UILabel!

然后创建一个由UIButton:

触发的IBAction函数
/// Set The Text Labels Text
@IBAction func updateLabelText(){

    //Set Label Text
    one.text = "one"
    two.text = "two"
    three.text = "three"
}

当然记得将它链接到Interface Builder中的UIButton实例。

希望这有帮助。