¿Presentar correctamente la pantalla de inicio de sesión condicional al inicio de la aplicación con guiones gráficos y controladores de vista dividida?

Esto parece que debería ser simple, pero está demostrando tener muchos matices desafiantes, y no he encontrado una respuesta en el Desbordamiento de Pila que responda de forma completa, clara y simple.

En pocas palabras: tengo una aplicación para iPad que usa guiones gráficos para diseñar el flujo de la aplicación, y un controlador de vista dividida como el controlador de vista raíz principal.

Esta aplicación comprueba en el inicio si hay credenciales de inicio de sesión almacenadas, y si lo son, pasa directamente a la interfaz de usuario y, si no, presenta una página de inicio de sesión en pantalla completa.

El desafío, sin embargo, ¿dónde se debe realizar esta comprobación condicional y cómo se debe crear una instancia de la pantalla de inicio de sesión?

He intentado todas las permutaciones que puedo pensar.

En la aplicación, el delegado parece ser el lugar obvio, pero parece que se ignoran los segmentos emergentes o modales de llamada porque las vistas desde el guión gráfico aún no están en vivo.

En los métodos de lanzamiento para el controlador de detalles de la vista dividida parece ser el siguiente lugar obvio.

La solución más cercana al trabajo que puedo encontrar se describe aquí:https://stackoverflow.com/a/8224389/529774

<code>- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"Login"];
    [vc setModalPresentationStyle:UIModalPresentationFullScreen];

    [self presentModalViewController:vc animated:NO];
}
</code>

Pero con esta implementación, llamada por el controlador de vista detallada de la vista dividida, la vista dividida subyacente parpadea brevemente en la pantalla.

Si cambio de viewDidAppear a viewWillAppear, no hay flash, pero la vista de inicio de sesión termina dibujándose en vertical incluso si la pantalla se gira a horizontal.

Como dije, este tipo de pantalla de inicio de sesión condicional parece ser común y fácil, pero no puedo encontrar un ejemplo simple de trabajo en cualquier lugar que combine una vista dividida, guiones gráficos, conciencia de rotación y que evite que la interfaz de usuario deje de parpadear.

¿Algun consejo? ¿Punteros a buenos ejemplos de trabajo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta