tableView中的每个单元格都连接到Detail View Controller,用户可以在其中收藏条目。收藏该条目时,tableViewCell中应显示一个心脏。
重新启动该应用程序后,心脏会在收藏的单元格中正确显示。但是,它仅在重新启动后显示。我相信我需要reloadRows函数,但是我找不到能够按预期工作的解决方案。
如何使reloadRows动态化,以便重新加载的行是所选的indexPath?
基本上,只要用户喜欢该条目,我希望他们能够返回tableView并看到单元格中的心脏。
一如既往地感谢您的帮助!
答案 0 :(得分:1)
您需要发送首选类数组,以便将编辑内容反映到原始数组中,然后在detailVC中进行编辑,然后再返回PrevVC中
END
或使用委托/通知中心重新加载表,如果您只想重新加载已编辑的indexPath,则创建一个var并单击 didSelectRowAt 时将其保存,并以上述方式仅重新加载该索引< / p>
override func viewWillAppear(_ animated:Bool) {
super.viewWillAppear(animated)
tableView.reloadData()
}
使用
var index:IndexPath?
func tableView(_ tableView: UITableView,
didSelectRowAt indexPath: IndexPath) {
index = indexPath
// segue / push detail here
}
答案 1 :(得分:0)
如果您在使用详细控制器时未调用reloadData
,则可以将indexPath传递给该控制器,并在回退时替换tableView单元格
类似于将indexPathForSelectedRow
传递到detailViewController,在那里更新数据源并使用该[passedIndexPAth]调用reloadRows
一旦显示实际代码,便可以告诉更多信息。
一些陷阱:
viewWillAppear
主要思想是,每次更改屏幕时,都将dataSource传输到新控制器,并使其负责。完成上述viewController的操作后,您将返回并更新状态。如果您需要解决对数据源的一些类似更改,请在模型级别上解决它们,并将更新相应地传递给视图