My app’s main page is a table view and when a row is selected a detailed view is displayed.
There is a requirement that whenever the app moves to the foreground the table view should be displayed, regardless of what view was previously displayed.
The consequence of this is the user may be viewing a detail view, then they switch the app to the background and then immediately back to the foreground again but now their detail view has been replaced by the table view.
I seem to have it in my head that this isn’t permissible according to the Human Interface Guidelines, but having a look through that doc I couldn’t see anything saying so. So maybe my memory is incorrect.
Is this behavior permissible by Apple, or must the app always endeavor to present the same view it did when the app was last in the foreground?
This behavior makes only sense in specific cases, for example:
The user needs to logon in order to use the application. In case the application has not been used for a specific time and the logon has expired, you might show the logon window instead of the original view once the application moves to the foreground again.
The main aim of the application is to show updates from feeds (news, twitter, etc.). You might update to the most recent items once the application moves to the foreground.
The camera was used at the moment the application was send to the background. You might disable the camera view and show an button to activate the camera again once the application moves to the foreground.
Generally, applications should not return from detail view to main view when they move to the foreground again. Users are very familiar with the navigation view concept and use it without thinking. Users might get confused and annoyed because of unexpected behavior.
In conclusion, if doing so significantly improves the user experience, it’s not contradictory with the Human Interface Guidelines and should be done.