如何解决更新 tableview 范围之外的值时更新值
当 tableview 内部的 label 值发生更改时,我在我的 viewcontroller 和 tableview 中放置了一个标签,我也想在 tableview 外部的标签上显示该值 我已将该值存储在我的单元格类中的 var 中,它会更新但标签未更新,请帮忙。
tableview 单元格中的按钮操作
@IBAction func addButton(_ sender: Any) {
count += 1
totalAmount = ItemAmount * Double(count)
totalCharge += ItemAmount
}
@IBAction func minusButton(_ sender: Any) {
if count > 0{
count -= 1
totalAmount = ItemAmount * Double(count)
totalCharge -= ItemAmount
}
}
我已将 totalCharge 声明为 public 并在视图控制器中访问它并将值赋予 cellforRowat 中的标签
解决方法
您有两个不同的引用对象(您的视图控制器和单元类),因此您需要使用协议在两个对象之间进行通信。下面是一个例子:
//define the protocol
protocol updateLabelsDelegate {
func updateLabels(itemAmount: Double)
}
//Add the delegate to your cell class
class customCell: UITableViewCell {
var delegate: updateLabelsDelegate?
@IBAction func addButton(_ sender: Any) {
count += 1
totalAmount = itemAmount * Double(count)
totalCharge += itemAmount
delegate.updateLabels(itemAmount: itemAmount)
}
@IBAction func minusButton(_ sender: Any) {
if count > 0{
count -= 1
totalAmount = itemAmount * Double(count)
totalCharge -= itemAmount
delegate.updateLabels(itemAmount: itemAmount)
}
}
}
//Conform to the protocol in your view controller
extension ViewController: updateLabelsDelegate {
func updateLabels(itemAmount: itemAmount) {
//... take the itemAmount value passed here and use it to update your label on the view controller
}
}
最后一件事,对 itemAmount 使用适当的大小写(不是 ItemAmount,除非它是静态类对象,如单例)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。