Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

state restoration in iOS

I am storing my application screen, so that when the application gets opened it will show the screen that was stored. The application is navigation based.

I have assigned the Restoration Ids to my two view controllers in main story board. The first controller is the root view controller of the navigation controller. I have also assigned Restoration Id to the navigation controller. Now the problem is when I run the application I am getting the following warning:

Unable to create restoration in progress marker file.

Not sure what else need to be done.

like image 601
gupta Avatar asked Oct 17 '13 10:10

gupta


Video Answer


1 Answers

I had the same warning before and fixed it by doing the followings.

I was using storyboard. My storyboard only included a navigation view controller and a view controller (which was the root view controller of that navigation view controller). In my case, it was caused by either of the two reasons:

The application was not set up correctly for state preservation The followings need to be set:

  1. In app delegate, override application:willFinishLaunching. One can simply return YES in that method.

  2. For every view controllers and views (including the navigation view controllers and tab view controllers), set a restore ID

  3. In app delegate, opt-in by overriding shouldSaveApplicationState and shouldRestoreApplicationState

If this warning still occurred, you could check how you run your app in Xcode. I ran my app in Xcode simulator and had to follow a specific sequence to trigger state preservation.

  • launch the app in Xcode simulator
  • In Xcode simulator, click the "Home" button to put the app into the background. The encodeRestorableStateWithCoder method of the view controller should be called
  • go back to Xcode, click the "stop" button to terminate the simulation
  • In Xcode simulator, double click the "Home" button and then remove the app from the app switcher and
  • go back to Xcode, run the app again.

That warning should not appear. When I used other sequences, I saw that warning appearing. When I debugged my app on my device using Xcode, I followed the same sequence and did not see the warning.

I think that warning indicated that because Xcode could not terminate the app correctly, the state restoration file was not correctly saved onto the disk.

like image 172
Julia Zhao Avatar answered Nov 15 '22 14:11

Julia Zhao