自从上次调用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
的第一个值。