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:
-
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 theindexPath
parameter is included for this purpose. -
Implement the
commit editingStyle: forRowAt indexPath:
method:override
func
tableView
(
_
tableView
:
UITableView ...
Get Learning Swift, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.