如何在每次加载UIViewController时运行一个函数

Ale*_*ine 1 viewdidload swift

我有这个功能:

func setMoneyValues() {
        balanceLabel.text = User.current.roundBalance()
        oweLabel.text = User.current.roundOwed()
        userLabel.text = User.current.roundUser()
    }
Run Code Online (Sandbox Code Playgroud)

我在viewdidload中执行.但是,它只被调用一次,如果我转到另一个选项卡(由选项卡栏控制器管理),更改值,并返回到此页面,值不会更新,因为该函数不会再次调用.每次重新打开标签时,我能做些什么才能调用它?

Kev*_*lia 6

也许你想要它viewDidAppear,只是被告知当对话框在控制器上并且消失时调用它,并且当用户背景并且在应用程序中返回时,但是考虑到你发布的代码的性质,这可能是你想要的地方它.

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    setMoneyValues()
}
Run Code Online (Sandbox Code Playgroud)

此外,如果您希望在视图出现之前更新它,您可以更改为viewWillAppear具有相同的签名.