Preservación del estado para controladores de vista con delegados personalizados o fuentes de datos

Estoy intentando usar iOS 6+ (mi aplicación es 7.0+) Preservación del estado para preservar una vista que se presenta modalmente desde otro controlador de vista. Como tal, tiene el patrón típico de despido del controlador de vista modal:

TNTLoginViewController.h contiene
@protocol TNTLoginViewControllerDelegate <NSObject>

- (void)TNTLoginViewControllerDismiss:(TNTLoginViewController *)controller;

@end

@interface TNTLoginViewControllerDelegate : NSObject

@interface TNTLoginViewController : UIViewController

@property (weak, nonatomic) IBOutlet id <TNTLoginViewControllerDelegate> delegate;

- (IBAction)getStarted:(id)sender;

@end
getStarted: implementación
- (IBAction)getStarted:(id)sender
{
    // Perform login
    ...

    // Dismiss me
    [self.delegate TNTLoginViewControllerDismiss:self];
}
TNTLoginViewControllerDismiss: método en delegado, que presentó el modal
- (void)TNTLoginViewControllerDismiss:(TNTLoginViewController *)controller
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

¡Y todo funciona a la perfección! Hasta la preservación del estado. En pocas palabras, no sé cómo TNTLoginViewController mantendría su delegado. Entiendo por qué no puede: ¡es solo un puntero! Así que intenté varias formas de derivar el delegado en su lugar:

Clase de restauración: tristemente, como método de clase,viewControllerWithRestorationIdentifierPath:coder: no me ayuda a señalar mi controlador de visualización de presentación específico.Establezca mi CV de presentación como mi delegado modal de VC en el Guión gráfico: Xcode no me dejaría establecer esa conexión, incluso cuando mi clase de CV de presentación adoptó públicamente elTNTLogingViewControllerDelegate> Protocolo en su cabecera. Ese puede ser un tema aparte, o esto puede no estar permitido.Utilice el nivel de delegado de aplicaciónapplication:viewControllerWithRestorationIdentifierPath:coder: para devolver un controlador de vista modal con su conjunto de delegados a mi controlador de vista de presentación. Tengo que ser capaz de derivar esa presentación de VC del delegado de la aplicación, pero podría funcionar.

Me voy con el # 3 por ahora, pero si hay una solución mejor que alguien pueda recomendar, me encantaría.

Configuraciones que producirían problemas similares:

Establecer una fuente de datos, por ejemplo, para una vista de tabla.

Respuestas a la pregunta(1)

Su respuesta a la pregunta