It occurred to me there is another way of handling the difference between editing a table row, and actually being in editing mode:
By overriding the table view delegate, we handle switching to editing ourselves. And by calling super for that, the code which switches over the toolbar etc. doesn’t run, leaving it in the correct state.
Pro: There’s no messy instance variable
Con: This code is a bit confusing and bound to give you a debugging headache somewhere down the line.
Verdict: Use with caution.