I am trying to baby step my way into the new State Restoration feature of iOS6. I have an existing TabBar based app using Storyboard. I set the restoration ID of the root tab bar and each top level view controller loaded by the story board, including embedded navigation controllers.
I Opt in via the app delegate options. Then when I select another tab bar view, send to background and stop via Xcode and relaunch I get the following behavior.
It Launches to the previously selected screen as expected but moments later it switches to the main (Home) screen.
It was my understanding that just setting the root controller if it's a tab bar controller, I'd get the selected index restored without any code.
If I create a brand new project with the tab bar controller template, this works with no issue, i.e. it restores the the selected controller and stays on this selection.
I've tried commenting out my entire common launch options, the entire view did load / did appear on the home view controller thinking it was somehow having an impact but the result was the same.
What would be a good way to debug this further? Note: I've not implemented any view controller specific state changes. In this case, I'm merely trying to remember the last selected view as a starting point. I've tried different views as the stepping out point and the result is the same, whatever was the last view displays briefly at launch then swaps to the home screen.
By the way, noticed the WWDC 2012 Video was demonstrating force quitting to test state restoration which does NOT work now. Per docs this will clear state and that has been my experience. I am stopping via Xcode as is recommended in the docs.