自从上次调用segue以来,我的UIButton类的statValue属性已经更新,但是segue仍然发送旧的原始值。是否有方法刷新prepare函数(如下),以便它发送新值?

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "StatDetailSegue" {
        if let destinationVC = segue.destination as? StatDetailViewController,
            let index = (sender as? StatButton)?.buttonIndex,
            let sendVal = (sender as? StatButton)?.buttonValue,
            let sendUnit = (sender as? StatButton)?.buttonUnit,
            let sendTitle = (sender as? StatButton)?.detailTitle {
            destinationVC.statID = index
            destinationVC.statValue = sendVal
            destinationVC.statUnit = sendUnit
            destinationVC.statTitle = sendTitle
            print("Destination STATID: \(destinationVC.statID)")
            print("Destination value: \(destinationVC.statValue)")
        }
    }
}

最佳答案

您能否调试statValue中的destinationVC值,并检查它在出现destinationVC后是否得到更新?另外,检查“StatButton”类的实现,也许buttonValue属性是一个延迟初始化的属性,并且只初始化一次?这就是为什么你总是得到分配给buttonValue的第一个值。

10-07 12:59