gpt4 book ai didi

ios - 使用prepareForReuse函数从UITableCell类内的ViewController重置var

转载 作者:行者123 更新时间:2023-11-30 12:09:36 28 4
gpt4 key购买 nike

我有一个包含一些单元格的 UITableView。这些单元格有数字,我将所有这些数字相加,然后显示总数(grandTotal)。

override func viewWillAppear(_ animated: Bool) {
grandTotal = 0.00
}

这是应用程序的简化版本,我使用 CoreData 来存储值。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
grandTotal! += grandTotal + 100
}

每次调用 cellForRowAt 时 grandTotal 不会重置回 0.00 的问题。我有一个具有此功能的自定义 UITableViewCell。

override func prepareForReuse() {
print("recalculate totals!!!!!!!")
}

UITableView加载并正确显示所有数据后,如果用户向上滑动,则会触发cellForRowAt函数,然后重新计算grandTotal,不是从0.00开始,而是tableView加载后的总计。

我想在 perpareForReuse 函数中将 grandTotal 变量设置回 0.00,但不确定如何再次从自定义单元格类访问 grandTotal 变量。

grandTotal 变量是在我的 ViewController 类中创建的。

**** 编辑 ****

我有一个可以跟踪贷款的应用程序。因此,您创建了一个想要添加到列表中的人。该人可以附加多笔贷款。有些是你借出的钱(正数),为什么其他是你借的钱(负数)。 TableView 显示应用程序中的所有人员。每个单元格还将每个人的所有贷款相加,并显示该人的正数或负数。我想做的是将每个人的所有总数相加,并将其显示为总计。我得到了这个工作,但如果我在表格 View 上向上或向下滑动,它会重新计算我的总数,并且不是从 0 开始,而是使用当前数字。

似乎有人建议我不应该在 cellForRowAt 函数中进行计算,我只是不确定如何进行计算,因为我正在使用单元格索引路径从其中提取人员数据核心数据。

let person = fetchedResultsController.fetchedObjects![indexPath.row]

再次看来,如果我能找到一种方法,每次调用prepareForReuse函数时将grandTotal设置回0,这可能会起作用。我只是不确定如何访问 ViewController 内的该变量

我尝试过这样的事情:

let viewController:ViewController = ViewController(nibName: nil, bundle: nil)
print("\(String(describing: viewController.oweTotal)) owe total from perpare") --> nil
print("\(String(describing: viewController.owedTotal)) owed total from perpare") --> nil

但我认为我只是创建一个新的 VC,而不是引用已经存在的 VC。

最佳答案

很难从示例代码中看出这里到底发生了什么。

当一个单元格从队列中“脱离 View ”时,它就会被“回收”。当您向上滑动时,正在发生的事情是在 cellForRowAt... 函数中配置回收的单元。

根据显示的代码,对于本示例,您可以通过跟踪表格 View 上最大的“IndexPath”来计算“总计”

max = max(max,indexPath.row)

max 是类 init 中 0 处的 var

关于ios - 使用prepareForReuse函数从UITableCell类内的ViewController重置var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46241678/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com