ios - TableView 行需要删除两次才能从 UI 中删除吗?

标签 ios swift uitableview core-data delete-row

我已经到了可以添加所有具有不同标签 的单元格的地步。但是,当滑动行以删除时,它只会删除与单元格关联的文本,而不是单元格本身。我尝试在 if 语句中添加 SavedMessages.deleteRows(at: [indexPath], with: .automatic) 但每次应用程序尝试删除该行时,应用程序崩溃。

这是代码:-

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath){
   if editingStyle == UITableViewCellEditingStyle.delete {
      let delete: NSFetchRequest<Messages> = Messages.fetchRequest()
      do { 
          var deleteMessage = try
          PersistenceServce.context.fetch(delete)
          PersistenceServce.context.delete(messages.remove(at: indexPath.row))
          PersistenceServce.saveContext()
          self.messages = deleteMessage
          SavedMessages.reloadData()
      } catch {}
   }
}

提前致谢!

最佳答案

也许你没有用

tableView.cellForRow(at: indexPath)?.removeFromSuperview()

我创建了一个示例,其中删除数据以及单元格都被完美地删除了。

var data = [1,2,3,4,5]

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

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

    if editingStyle == UITableViewCellEditingStyle.delete
    {

        data.remove(at: indexPath.row) //removing the value from data source.

        tableView.cellForRow(at: indexPath)?.removeFromSuperview() //removing the cell

        tableView.reloadData() //reloading Table data.
    }
}

关于ios - TableView 行需要删除两次才能从 UI 中删除吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48236943/

相关文章:

ios - UIAlert 错误,其 View 不在窗口层次结构中

swift - PromiseKit 与 Swift : terminate chain of promises

ios - 来自 CKAsset 的图像在 Swift 中加载乱序

ios - 无论 map 提供商如何,一个 CLlocation 2D 是否唯一对应于地球上的一个地方?

iphone - NSString sizeWithFont:constrainedToSize:无法正常工作

ios - 如何使用 iOS 将文件上传到 Amazon S3 并获取 url 作为响应

ios - 离屏(不可见)TableViewCell 不动画

swift - 实现一组特定的委托(delegate)方法与不实现它们的优缺点以及实现一个而不是另一个的效果?

iphone - 发送到实例的 UITableViewController 无法识别的选择器

ios - vscode 自定义 rn 模拟器设置损坏