ios - 在另一个 View Controller 展开 segue 后重新加载 UIView 数据上的自定义 TableView

标签 ios swift uitableview uiview

我一直在尝试在另一个 View Controller 完成保存文件并展开到 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 委托(delegate)有关?

最佳答案

tableView.reloadData() 导致对 numberOfRowsInSection 的调用,反之亦然。您猜对了:无限循环。

您可以执行以下操作:

  1. 创建一个委托(delegate),它将由第一个 Controller 执行。
  2. 第二个 Controller 将调用委托(delegate)方法并重新加载其中的表。

委托(delegate)示例:get indexPath of UITableViewCell on click of Button from Cell

或者简单的方法。

ViewWillAppearviewDidAppear 方法中调用 tableView.reloadData()

关于ios - 在另一个 View Controller 展开 segue 后重新加载 UIView 数据上的自定义 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47150465/

相关文章:

swift - 在 Swift 3 中从解析流式传输音频

ios - UITableView无法滚动

ios - NSLayoutConstraint VFL 由于 EXC_BAD_ACCESS 崩溃

iphone - 如何设置初始界面方向?

swift - 在 map() 中使用 init()

swift - iOS 13 - UIMenu 是否存在不显示其图像的错误?

ios - UITableViewCell 上的 UIProgressView

ios - Realm :mmap() 失败:无法分配内存大小

iOS - 如何使用变音符号正确读取 JSON 文件

Swift NSURLConnection 发送同步请求