【发布时间】:2017-11-07 05:18:01
【问题描述】:
在另一个视图控制器完成保存文件并展开到 tableview 后,我一直在尝试重新加载数据
顺便说一句,由于这个tableview是在UIViewController上创建的,所以我在尝试放入tableview.reload()后得到了这个错误
线程 1:EXC_BAD_ACCESS(代码=2,地址=0x7ffedffbcfa8)
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
tableView.reloadData()
return fileURLs.count
}
我猜这样做可能会导致无限循环并永远保持reloadData?
实现此方法的正确方法是什么?
编辑
放
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
tableView.reloadData()
}
或
@IBAction func unwindToCSVList(sender: UIStoryboardSegue) {
//tableView.reloadData()
}
无论哪种方式都不起作用,这与我的 UITableView 代表有关吗?
【问题讨论】:
-
有可能,该表正在重新加载,但您传递的数组可能不会更新。
-
@DipakKacha 是的!我解决了。谢谢,如你所说
-
正如@DipakKacha 所说“您传递的数组可能不会更新”,您应该使用委托方法将更新的数据传递给第一个控制器,然后更新数组内的数据并在之后重新加载表或重新- 调用 API。
-
@Mr.Bista,当他使用 unwind segue 时,我们可以从 segue 传递任何东西。那么为什么要使用委托或任何其他额外的代码呢?
-
@Mr.Bista,没错。
标签: ios swift uitableview uiview