【从零开始的Swift开发心路历程-Day19】简易订单系统Part3

昨天我们已经能成功新增订单了,今天我们就来练习直接在TableView往左滑完成删除订单的功能吧!
要让TableView能够往左滑删除,需要使用以下function

接着在function里加入以下程序码

let orderId = NSPredicate(format: "id = %@ ", self.orders[indexPath.row].setId)
//左滑删除
let deleteOrders = realm.objects(Order.self).filter(orderId)
let deleteAction = UIContextualAction(style: .destructive, title: "删除") {[self] (action, sourceView, complete) in
    self.orders.remove(at: indexPath.row)
    self.myTableView.deleteRows(at: [indexPath], with: .top)
    try! self.realm.write {realm.delete(deleteOrders)}
    complete(true)
    }
deleteAction.image = UIImage(systemName: "trash")//在按钮上新增图示
let leftSwipeConfiguration = UISwipeActionsConfiguration(actions: [deleteAction])
return leftSwipeConfiguration

以上程序码是透过NSPredicate查询并且用UIContextualAction所选TableView列的订单id相符的订单在TableView上与资料库做同步删除的动作
此外,也可以帮自己的删除按钮上新增垃圾桶的图示,这样看起来比较美观!

如此一来,订单的删除功能就完成罗!那假设我们想要修改这笔订单该怎麽办呢?明天就来带大家一探究竟~


<<:  Day16 - 用简单的字串替换实作价值上亿的机器人

>>:  Day 16:AWS是什麽?30天从动漫/影视作品看AWS服务应用 -《云端情人》part 3

Day 21 装设开源的 Libre-Office

藉由 docker-compose 的协助,要安装好服务显得容易许多。现今多数官方的 docker ...

Ruby on Rails layout

只能⼀个版型吗? 如果你喜欢,可以有多种款式的版型,预设的版型是 app/views/layouts...

[Day08] - 弹跳视窗 Modal - Slot 介绍

网页元件中 , 常会使用 Modal 这种类型的元件 如果我们将其制作成一个 <Modal&g...

day27: function composition

今天补充一下,function composition 的概念。 在之前我们有提过 pipe 和 c...

从零开始用github架设静态网站入门(3) - CSS客制化

对於HTML里面编写的大多数元素我们都可以赋予它特别的属性,像是在前面章节我们提到,将div赋予了c...