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.

Deleting Selfies

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 Bool is 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:

  1. Implement the canEditRowAt indexPath: method:

    override func tableView(_ tableView: UITableView,
                            canEditRowAt indexPath: IndexPath) -> Bool
    {
        return true
    }

    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 indexPath parameter is included for this purpose.

  2. Implement the commit editingStyle: forRowAt indexPath: method:

    override func tableView(_ tableView: UITableView ...

Get Learning Swift, 3rd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.