如何在 TableView 中重新加载数据

Posted

技术标签:

【中文标题】如何在 TableView 中重新加载数据【英文标题】:How do I reload data in my TableView 【发布时间】:2017-03-09 21:29:31 【问题描述】:

我在 Stack 上看到了一些关于这个问题的答案,但其中很多都是 5 年前的,并且使用的是旧版本的 Swift。我想在每次用户点击保存时重新加载表中的数据,以便现在将附加事件添加到表中。但无论我做什么似乎都没有出现! 我尝试在我的保存功能中添加table.reloadData()。但我得到一个错误:

线程 1 错误,致命错误:在展开可选值时意外发现 nil。

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate 
    @IBOutlet weak var txtTitle: UITextField!
    @IBOutlet weak var txtLocation: UITextField!
    @IBOutlet weak var txtDate: UITextField!
    @IBOutlet weak var txtTime: UITextField!

    var eventsArray = [Event]()

    @IBAction func btnSave() 
        let event = Event(tits: txtTitle.text!, locs: txtLocation.text!)

        eventsArray.append(event)
        table.reloadData()
        print(eventsArray)

    

    @IBOutlet weak var table: UITableView!

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        return eventsArray.count
    

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! CustomeCell

        cell.title.text = eventsArray[indexPath.row].title
        cell.location.text = eventsArray[indexPath.row].location

        return cell
    

【问题讨论】:

您在哪里尝试重新加载表? 我在尝试 table.reloadData() 时不断收到错误 显示您尝试过的代码并显示您遇到了哪些“错误”。 Edit 您的问题与您尝试过的内容和错误消息。 我打赌@IBOutlet weak var table: UITableView!nil,因为您忘记在情节提要的表格视图中连接插座。 【参考方案1】:

你是否在 viewDidLoad 上设置了 tableView 的委托?

table.delegate = self

【讨论】:

以上是关于如何在 TableView 中重新加载数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在其他视图中重新加载 TableView?

tableView.reloadData() 如何正确重新加载数据?

如何从其他类重新加载整个 tableview 控制器 [关闭]

如何将一个数组的tableview数据重新加载到另一个数组?

从 AppDelegate 重新加载 tableView

iOS 为啥我的应用程序在重新启动之前不会将数据加载到 tableview 中?