2011-10-25 18 views
18

estoy teniendo problemas para lograr lo siguiente utilizando un guión gráfico:iOS 5 del guión gráfico, programación determinar la trayectoria

Cuando la instalación no se realiza: aplicación run -> configuración de la presentación View Controller -> muestran controlador de navegación principal Cuando la instalación está hecha: ejecutar la aplicación -> mostrar el controlador de navegación principal

Básicamente, quiero que la aplicación se inicie programáticamente con la vista de configuración en ciertos casos, y salte directamente al controlador de navegación principal.

Me las arreglé para mostrar la vista de configuración con un estilo modal desde el controlador de navegación principal, pero no sé cómo mostrarlo antes de se muestra el controlador de navegación principal. ¿Algunas ideas?

Respuesta

20

me las arreglé para hacerlo un poco diferente:

  1. Utilice un UINavigationController como el controlador de vista inicial.
  2. Crea un controlador de vista raíz que administrará la decisión de qué cargar.
  3. Cree un Storyboard Segues desde el controlador de vista raíz a la vista principal y a la vista de configuración, y proporcione a los segues los identificadores adecuados.
  4. Llame al performSegueWithIdentifier con el identificador adecuado de su controlador de vista raíz.

Simplemente otra solución, espero que esto ayude.

+0

esta es una manera mejor y más fácil de abordar el problema que siento – carbonr

+0

De acuerdo, esta parece ser una solución mejor. Cambié la respuesta aceptada. –

+1

No creo que esto funcione si está usando un controlador de vista dividida en su aplicación; el controlador de vista dividida debe ser la raíz inicial. – radven

29

De forma predeterminada, el controlador de vista inicial de su guión gráfico principal se crea una instancia y se muestra automáticamente cuando se inicia la aplicación. Para evitar que esto suceda, debe eliminar la configuración UIMainStoryboardFile de su archivo info.plist.

Sin controlador de vista predeterminado, ahora puede crear uno programáticamente al inicio de la aplicación. Vea el UIStoryboard documentation. Use +storyboardWithName:bundle: para cargar el guión gráfico y luego use –instantiateViewControllerWithIdentifier: para crear el controlador de vista correcto. También necesitará crear una ventana UI principal y agregar la vista del controlador de la vista como solía hacer con la interfaz de usuario basada en .nib. Tenga en cuenta que sin la configuración UIMainStoryboardFile no se crea una ventana principal para usted; lea explanation.

+0

Gracias, eliminando el guión gráfico de la info.plist hizo el truco! –

+0

Respuesta sucinta, gracias :) – Jarrod

+0

¿Cómo crear la 'UIWindow' principal? – Siddharth

3

Hice algo similar a amoshaviv, su consejo es el sonido. Aunque lo hice un poco diferente, y les daré más información. Creé una clase MyInitialViewController personalizada, derivada de UIViewController, y la convertí en el controlador de vista inicial. En el archivo del guión gráfico, creé segues modales con los nombres adecuados para todos (en mi caso tres) posibles controladores de vista en primer lugar 'reales'. En la clase MyInitialViewController, que implementa el método

- (void)viewDidAppear:(BOOL)animated; 

, para llevar a cabo por primera vez el cheque que ver para cambiar a, y luego hacer lo correcto

[self performSegueWithIdentifier:@"NameOfSegue" sender:self]; 

Efectivamente, esto hace que el MyInitialViewController nada más que un cambio realizado cuando se visualiza. Primero intenté hacer esto cuando cargué porque no me importa ver esta vista, pero eso no funcionó, mientras que viewDidAppear sí.

Para que esto sea visualmente sencillo, intenté lo siguiente. En las propiedades de los segmentos, deshabilité la animación. La vista que dejé vacía, y le di un color de fondo que coincide con el de la imagen de inicio.

Cuestiones relacionadas