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

How to reload view after data changes in Swift

我有一个包含标签的视图,并且有一个按钮可以更改标签的值。我怎样才能重新加载整个视图来更新标签,而不是在按钮中一个一个地更改值。

@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() 方法,但没有成功。

您永远不应该给自己打电话 viewDidLoad。这是 OS 调用的框架函数,表示您的视图已准备好设置。

如果你把你的功能分开会更好

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

现在您可以随时调用 updateLabels 函数。

为什么不把所有标签都放在一个方法上。并在需要重新加载时触发它。

override func viewDidLoad() {
    super.viewDidLoad()

    updateLabels()

}

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


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

您更新标签的方法不正确。您需要做的事情如下:

像确保在 Interface Builder 中 linked 一样声明标签:

//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"
}

当然要记住 link 将此添加到 Interface Builder 中的 UIButton 实例。

希望对您有所帮助。