自从上次调用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)")
}
}
}
答案 0 :(得分:1)
如果在情节提要中使用了按钮,请检查您的 StatButton ,然后您的按钮应该继承自 StatButton 而不是 UIButton ,否则您的代码看起来不错
答案 1 :(得分:0)
您可以在statValue
中调试destinationVC
的值并检查在显示destinationVC
之后是否更新了该值?另外,检查“ StatButton”类的实现,也许buttonValue
属性是一个延迟初始化的属性,并且只能初始化一次?这就是为什么也许您总是会始终获得分配给buttonValue
的第一个值的原因。