Chapter 7. Adding and Deleting Selfies
We now have a workable UI for viewing all the selfies, but we don’t have any way to add new selfies or to delete existing ones. Selfiegram won’t really be much of an app if the only selfies inside it are those we created as part of the tests—it’s time to change that.
First we will make the changes necessary to delete selfies. We are doing this first because it is easier.
We will be writing some code that allows us to use the standard iOS swipe-to-delete behavior, which you may have seen in the mail app.
To do this we will need to use two different table view data source methods,
tableView(_ canEditRowAt indexPath:) and
tableView(_ commit editingStyle: forRowAt indexPath:).
The first of these returns a
Bool; if the
true the table view allows deletion of that row, and if it’s
false it blocks it.
The second is called once an edit has been made.
In our case the edit will always be a deletion, but this is the same method that gets called for any edit, including cell rearrangement:
As we allow for every selfie to be deleted all we are doing in here is returning
true, but if you do need to control this the
indexPathparameter is included for this purpose.
commit editingStyle: forRowAt indexPath:method: