我达到了正确的值并在调试会话期间打印出来。但是,当我运行应用程序时,计算值(newcalory)不会显示特定的表格单元格文本字段。 (又名.cell.itemTotalCalory.text)您对解决方案有什么想法吗?
*我附上了下面的相关代码块。
非常感谢,
"unsigned":true
答案 0 :(得分:0)
您应该更新ingredients
数组中的值,然后调用ingredientTableView.reloadData()
以将此反映到用户界面。
在refresh
方法中调用dequeueReusableCell(withIdentifier:)对于您要执行的操作无法正常工作:
出于性能原因,通常应该使用表视图的数据源 当它将单元格分配给其中的行时,重用UITableViewCell对象 tableView(_:cellForRowAt :)方法。表视图维护队列或 数据源已标记的UITableViewCell对象的列表 重用。 要求时,请从数据源对象中调用此方法 为表视图提供一个新单元格。此方法使一个表格出列 现有单元格(如果有)或使用该类创建新单元格 或您之前注册的nib文件。如果没有可用的单元格 重用并且您没有注册类或nib文件,这种方法 返回nil。
因此,刷新方法应类似于:
func refresh() {
// updating ingredients array upon reqs satisfaction...
// and then:
ingredientTableView.reloadData()
// nameOfYourRefreshControl.endRefreshing()
}
此外,如果您非常确定要从tableView获取特定单元格,则可能需要使用cellForRow(at:)实例方法:
返回指定索引路径的表格单元格。
func refresh() {
let cell = ingredientTableView?.cellForRow(at: YOUR_INDEX_PATH)
//...
}
希望这会有所帮助。
答案 1 :(得分:0)
我找到了解决方案,下面列出的行无用。
let cell = ingredientTableView.dequeueReusableCell(withIdentifier: "cell") as! IngredientTableViewCell
cell.itemTotalCalory.text = newcalory
我使用plusAction函数中的新值更新了feed数组,我的问题解决了。感谢所有帖子。