2016-09-05 1 views
1

J'essaie de mettre en œuvre enregistrer et restaurer l'état de l'application. Je comprends que la méthode dans le délégué de l'application shouldSaveApplicationState: enregistre l'état et vous fournir des ID de restauration pour les contrôleurs de vue, application:shouldRestoreApplicationState: devrait vous ramener au contrôleur de vue que vous étiez, lorsque l'application revient à active. Cependant, si je ferme volontairement l'application en utilisant le bouton d'accueil - par exemple, pour passer un appel téléphonique ou vérifier quelque chose sur un safari - quand je reviens à l'application, pendant une fraction de seconde, cela montre où j'en avais été mais redémarre ensuite à partir du contrôleur de vue initial.IOS: Comment restaurer l'état de l'application

Ceci est discutable pour l'utilisateur et certainement sous-optimale car l'utilisateur doit se donner la peine de retourner où il était.

Lorsque je mets application:shouldRestoreApplicationState: pour se déconnecter quand il est déclenché, il semble qu'il ne soit pas déclenché dans ce cas - apparemment de par sa conception comme dans cet état question.

Existe-t-il un moyen de forcer cette méthode à être appelée afin de récupérer mon état? Sinon, comment pouvez-vous revenir à l'endroit où vous étiez dans l'application dans le cas où vous quittez l'application au lieu de l'interrompre, disons, par un appel téléphonique entrant?

Merci pour vos suggestions.

Répondre

1

Cela s'est avéré être une erreur de ma part. La raison pour laquelle la méthode application:shouldRestoreApplicationState: ne tirait pas sur un CV après avoir appuyé sur le bouton d'accueil est qu'une méthode dans le fichier appDelegate appelée applicationDidBecomeActive:(UIApplication *)application se déclenche plus tôt dans le cycle de vie et redirigeait l'application vers la page de démarrage. J'ai corrigé cela en déplaçant la redirection gênante dans le applicationDidBecomeActive vers applicationDidFInishLaunching qui vient après la méthode de restauration dans le cycle de vie. Cela a permis au shouldRestoreApplicationState de tirer. Il est important de noter que le fait d'appuyer sur le bouton d'accueil n'est pas un arrêt forcé, à l'exception du déclenchement de la méthode de restauration.