Back! Done! Cancel! Save! Mobile apps sport a bevy of buttons to dismiss a view, but their proper placement isn't always obvious. Let me cut through the fog: for iOS apps, it boils down to these general rules.
- The Back button always goes at top left.
- A Done or Save button always goes at top right.
- A Cancel button goes at top right, unless paired with a Done or Save button, in which case it slides over to top left.
Here's why. In iOS, the Done, Save and Cancel buttons are almost always used to dismiss a modal view, a screen that temporarily interrupts the action by sliding up from the bottom to cover the "regular" screen. Modal views themselves often have internal navigation that requires a Back button at top left, so those Done/Save/Cancel buttons have to make way. As a result, they stake out a default location at top right. For consistency, they should stay there even when there is no Back button in your modal view.
The inimitable Lukas Mathis spells out the whys and wherefores in his Back Button Placement blog post:
This is reinforced using animations: if something slid in from the right (the user moved further into the currently visible information hierarchy), use «Back» (the button on the left) to move to the left. If something slid in from the bottom (a modal view), use «Done» (the button on the right) to have the currently visible sheet slide back down again. To the user, there’s a spatial system that conveys how screens are arranged, and which button should be used, depending on where she wants to go.