昨天我們已經能成功新增訂單了,今天我們就來練習直接在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上與資料庫做同步刪除的動作
此外,也可以幫自己的刪除按鈕上新增垃圾桶的圖示,這樣看起來比較美觀!
如此一來,訂單的刪除功能就完成囉!那假設我們想要修改這筆訂單該怎麼辦呢?明天就來帶大家一探究竟~