UITableView move handles not showing?

iOS

Today, I had to implement UITableView row re-ordering for the first time. The cells had showsReorderControl set to YES, and my delegate was implementing tableView:canMoveRowAtIndexPath: returning YES and still the handles would not show when tableView.editing was set to YES.

The solution? Your dataSource must also implement tableView:moveRowAtIndexPath:toIndexPath: for the handles to show, even if it does nothing – although it must do something to have any lasting effect on your model. The docs do state this but it is easily missed.