如何使用删除按钮删除UITableView单元格?

时间:2019-01-04 20:41:11

标签: ios swift uitableview

我已经实现了对UITableView生成的每个单元格的复制,编辑和删除按钮(每个单元格都是根据用户需求创建的)。复制和编辑按钮以相同的方式编码,可以正常工作。但是,每次按删除按钮时,都会出现错误“线程1:信号SIGBART”。不知道如何解决。任何帮助将不胜感激。

一些有用的信息: -每个单元格都是一个节,并且每个节在tableview中都有一行 -按钮在单元格视图的代码中已正确连接,并已适当委派以在表视图中使用。

我是敏捷的初学者,所以请多多包涵。下面的代码来自我的UITableViewController。我试图从节索引及其引用的对象中删除该单元格。然后,我尝试在UITable视图上重新加载数据。但是,一旦单击删除按钮,我就会收到一个错误消息。

func hashtagCellDidTapDelete(_ cell: HashtagCell) {
    if tableView.indexPath(for: cell) != nil {
        let indexPath = tableView.indexPath(for: cell)
        tableView.deleteSections([(indexPath?.section)!], with: .fade)
        hashtagSource.hashtags.remove(at: (indexPath?.section)!)
        tableView.reloadData()
    }
}

2 个答案:

答案 0 :(得分:1)

首先从数据源中删除该项目,然后更新UI。

并使用“可选绑定”来解开可选的indexPath,以避免出现丑陋的括号,问号和感叹号。

并且永远不要在reloadData()之后致电insert/deleteRows/Sections

func hashtagCellDidTapDelete(_ cell: HashtagCell) {
    if let indexPath = tableView.indexPath(for: cell) {
        hashtagSource.hashtags.remove(at: indexPath.section)
        tableView.deleteSections([indexPath.section], with: .fade)
    }
}

答案 1 :(得分:1)

我们不能删除uitableview单元格,而不能删除从数组中删除的条目,而该数组是在数据源方法(如

)中传递的
@RelationshipEntity

func numberOfSections(in tableView: UITableView) -> Int { }