---
title: "tableView(_:didEndEditingRowAt:)"
framework: uikit
role: symbol
role_heading: Instance Method
path: "uikit/uitableviewdelegate/tableview(_:didendeditingrowat:)"
---

# tableView(_:didEndEditingRowAt:)

Tells the delegate that the table view has left editing mode.

## Declaration

```swift
optional func tableView(_ tableView: UITableView, didEndEditingRowAt indexPath: IndexPath?)
```

## Parameters

- `tableView`: The table view providing this information.
- `indexPath`: An index path locating the row in tableView.

## Discussion

Discussion This method is called when the table view exits editing mode after having been put into the mode by the user swiping across the row identified by indexPath. As a result, a Delete button appears in the row; however, in this “swipe to delete” mode the table view does not display any insertion, deletion, and reordering controls. When entering this “swipe to delete” editing mode, the table view sends a tableView(_:willBeginEditingRowAt:) message to the delegate to allow it to adjust its user interface.

## See Also

### Editing table rows

- [tableView(_:willBeginEditingRowAt:)](uikit/uitableviewdelegate/tableview(_:willbegineditingrowat:).md)
- [tableView(_:editingStyleForRowAt:)](uikit/uitableviewdelegate/tableview(_:editingstyleforrowat:).md)
- [tableView(_:titleForDeleteConfirmationButtonForRowAt:)](uikit/uitableviewdelegate/tableview(_:titlefordeleteconfirmationbuttonforrowat:).md)
- [tableView(_:shouldIndentWhileEditingRowAt:)](uikit/uitableviewdelegate/tableview(_:shouldindentwhileeditingrowat:).md)
