准备segue函数不加载新值

时间:2018-09-10 00:37:09

标签: ios swift segue

自从上次调用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)")
        }
    }
}

2 个答案:

答案 0 :(得分:1)

如果在情节提要中使用了按钮,请检查您的 StatButton ,然后您的按钮应该继承自 StatButton 而不是 UIButton ,否则您的代码看起来不错

答案 1 :(得分:0)

您可以在statValue中调试destinationVC的值并检查在显示destinationVC之后是否更新了该值?另外,检查“ StatButton”类的实现,也许buttonValue属性是一个延迟初始化的属性,并且只能初始化一次?这就是为什么也许您总是会始终获得分配给buttonValue的第一个值的原因。