He intentado preservar el estado de mi aplicación de iPhone serializando mi UITabBarController
principal usando [NSKeyedArchiver archiveRootObject:toFile:]
, pero estoy teniendo problemas.Preservar el estado de la aplicación en reinicios
Primero tuve un problema con UIImage
, ya que no implementa el protocolo NSCoding
, pero resolvió que al hacer una categoría de extensión para UIImage
que almacena y recupera los datos de imágenes en bruto.
El problema en el que estoy atascado ahora es que mis controladores de vista no están allí cuando restauro del archivo. Tengo UINavigationControllers
en cada una de mis pestañas, y cuando restauro, las UINavigationItem
s todavía están allí (puedo usar los botones Atrás y así sucesivamente para cambiarlas) pero los controles de vista simplemente se han ido.
Veo que UINavigationController
's viewControllers
propiedad se marca (nonatomic, copy)
. ¿Significa esto que cuando archiva un UINavigationController
, no incluye su pila de controladores de vista? Si es así, ¿cómo puedo evitar esto? Primero pensé que anularía los métodos NSCoding
para UINavigationController
, pero esto daña la inicialización del archivo NIB.
Estoy un poco perturbado porque he estado teniendo esta dificultad para preservar el estado de la aplicación. Pensé que era un caso de uso bastante común que sería sencillo de implementar. ¿Me estoy perdiendo de algo?