¿Mantener un ViewController en el mismo estado / mantenerlo cargado en segundo plano?

Actualmente estoy trabajando en una aplicación con múltiples vistas, más de 30 ViewControllers. Estoy usando storyboard para conectar el flujo de las vistas juntas.

Me gustaría que cuando el usuario se aleja de un ViewController, cuando vuelva a esa vista, se quede en el mismo estado con los mismos cambios que el usuario había ingresado. (en un UITextFeild, UILabel, UITextView, etc.)

Ya que tengo tantas vistas, sería ideal no tener que almacenar la información en Variables Globales o con:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

Gracias de antemano, saludos

Hay muchas forms de almacenar datos; Las variables globales y el sistema pnetworkingeterminado no suelen estar entre las mejores opciones. Parece que debes pensar en desarrollar un model de datos real para tu aplicación. Un model es el M en MVC, y es esencialmente uno o más objects que almacenan los datos y administran la "lógica comercial" para su aplicación.

Su model podría ser tan simple como un solo dictionary mutable, o podría ser un gráfico complejo de objects interrelacionados. No trataré de explicar todo MVC aquí, puedes (deberías) leerlo si no estás familiarizado con la idea. Pero es ciertamente posible crear un model que guarde el estado de cada controller de vista, y cuando un controller determinado se activa, puede configurar su jerarquía de vista para que coincida con el estado guardado.

Básicamente, necesita implementar algo así como una stack, mientras invoca a otro viewController y lo empuja a la stack conservando el estado en el que se encontraba el viewController y saliendo de la stack hará que se visualice el último viewController (y su estado).

Por suerte, ya hay algo como esto en iOS – UINavigationViewController . Proporciona tales methods como:

 – pushViewController:animated: – popViewControllerAnimated: – popToRootViewControllerAnimated: – popToViewController:animated: 

Este tutorial le dirá cómo implementar esto en su proyecto. Entonces, en lugar de vincular viewControllers a través de storyBoard, sugiero que enrolles la manga e implementes todo esto en el código. Espero que esto ayude.