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.