It is best practice to automatically save changes when you click back button as in Settings app on iPhone or have separate Cancel (on left side of nav bar) and Done on (right side of nave bar) buttons, or is it okay either way?
Here is settings approach:
Here is cancel/done approach:
I have a lot of these and don't want to do them all the wrong way only to have to change them later.
Thank you.
There's a pretty significant difference between your two examples. In the first, you are editing existing data and as such it makes sense that everything will just save in real time. In the second example, you may or may not create an entity. Here, cancel is really important. If I click the new contact button by mistake I do not want an empty contact to be created if I back out.
So the questions you need to ask yourself above all else as far as which button is appropriate;
If you are editing something that isn't new you probably want an arrow and to save immediately. If you're making a new thing, you need to have an obvious way to cancel doing so.
Unless you want whatever is on the page to be mandatory, you should give people a way to cancel that is very clear and also be as clear as possible that going back will destroy any entered data.