tableview不删除内容

时间:2017-05-18 07:33:57

标签: ios swift uitableview

在我的代码中,我的功能是我的tableview应该被重置并再次绘制。

    func resetList() -> Void {
        self.data.removeAll()
//        self.data = []
//        data.removeAll(keepingCapacity: false)
        if let t = tableView {
        t.reloadData()
         }
    }

    //MARK: UITableViewDataSource
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier , for: indexPath) as? FilterCell  {
            return cell
        }
        return UITableViewCell()
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.data.count
    }


    //MARK: UITableViewDelegate
    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        let c = cell as! FilterCell
        c.setFilterData(filter: self.data[indexPath.row])
        c.delegate = self
    }

当我调用resetList()方法时,当我调用reloadData()我的tableview内容仍然是旧值时,我的self.data变空了。

我在这里做错了什么。我错过了什么吗?它可能是一个什么样的问题?

4 个答案:

答案 0 :(得分:0)

您应该尝试清理项目并重置内容&设置模拟器

答案 1 :(得分:0)

您想降低所有数据

所以删除代码中的所有数组值

您希望在表中逐个删除使用此代码

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {

        if editingStyle == .delete {
            arrayDays.remove(at: indexPath.row)

            tableView.deleteRows(at: [indexPath], with: .left)
        }

答案 2 :(得分:0)

替换此

if let t = tableView {
        t.reloadData()
         }

 self.tableView.reloadData()

答案 3 :(得分:0)

您只需要重新加载tableview。请删除此

if let t = tableView {
        t.reloadData()
         }
    }