表格视图单元格不显示更新的数据

时间:2017-01-23 12:50:20

标签: ios swift xcode uitableview tableviewcell

我达到了正确的值并在调试会话期间打印出来。但是,当我运行应用程序时,计算值(newcalory)不会显示特定的表格单元格文本字段。 (又名.cell.itemTotalCalory.text)您对解决方案有什么想法吗?

*我附上了下面的相关代码块。

非常感谢,

"unsigned":true

2 个答案:

答案 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数组,我的问题解决了。感谢所有帖子。