I can see this behavior in both deprecated UITableViewRowAction class and UISwipeActionsConfiguration class:
If you have allowsMultipleSelection property set to true and, let's say, you have 3 rows selected:
When you start swiping any row in the table for a RowAction the previously selected rows -- all 3 of them -- become unhighlighted, and the property indexPathsForSelectedRows drops to nil.
- Does this behavior make sense?
- Is there any 'deselecting' callback (because I'm displaying the number of selected rows)
- What are possible workarounds to persist the array of selected rows?
UITableView enters editing mode when you swipe a row in the table. This is your
You can backup your selected rows on entering the mode and restore on exiting:
Also note that if you re-arrange/delete/insert rows during editing, you'll need to update your stored indexPathsForSelectedRows accordingly so you restore correct index paths.