tutorials que apple objective-c ios storyboard

objective-c - apple - que es el storyboard xcode



segue cargando viewcontroller pero no mostrĂ¡ndolo (1)

Tengo un problema al mostrar un Controlador de Vista cuando invoco un cambio de código en una aplicación de iPad.

Tengo la configuración de segue en IB con Ctrl arrastrando de un controlador de vista al otro, con

Identificador: viewDocumentSegue , Estilo: Modal , Presentación: Predeterminado , Transición: Predeterminado

Estoy llamando al segue desde el primer controlador de vista usando

[self performSegueWithIdentifier:@"viewDocumentSegue" sender:nil];

y pasar una variable al segundo controlador de vista usando

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { UIViewController *destination = segue.destinationViewController; if ([destination respondsToSelector:@selector(setFileURL:)]) { [destination setValue:fileName forKey:@"fileURL"]; } }

El segundo controlador de vista se carga, ya que los NSLogs que tengo en viewDidLoad viewWillAppear y viewDidAppear se muestran en la consola, pero no se muestra nada.

Estoy pensando que la vista de la segunda vista del controlador está en algún lugar de la jerarquía de la vista. ¿Pero cómo lo forzo a la cima?

Editar

Aquí hay una captura de pantalla de la interfaz (algo debe ser oscurecido). He agregado algunas notas que explican la estructura. Espero que ayude.

(No puedo subir imágenes todavía así que aquí hay un enlace) http://www.linfoots.com/Screenshot.jpg

¿Alguna sugerencia?

Gracias,

Ricardo


No está brindando la información adicional que solicité, por lo que es imposible responder a su pregunta en detalle. Lo que sugiero que hagas es hacer un proyecto completamente nuevo con solo dos controladores de vista. Conéctelos en el guión gráfico de la misma manera. Verás que lo que intentas hacer, de hecho, funciona bien. Una vez que te hayas convencido de eso, puedes volver atrás y ver cuál es la diferencia en el proyecto con el que estás teniendo problemas.

EDITAR:

De acuerdo, gracias por la captura de pantalla. Parece que estás tratando de usar un guión gráfico en relación con un controlador de vista padre, exactamente como adiviné en mi segundo comentario. No es fácil porque un guión gráfico no sabe nada de los hijos del controlador de vista padre. Serás mucho más feliz usando múltiples guiones gráficos, o sin guiones gráficos.

Ahora llegamos al problema de usar un controlador de vista padre. No preguntaste sobre esto, pero podría ser el corazón de tu problema. Es crucial que administre los controladores de vista infantil correctamente. Ver la discusión en mi libro:

http://www.apeth.com/iOSBook/ch19.html#_container_view_controllers

Debes hacer este elaborado baile cada vez, o las cosas no irán bien:

Cuando un controlador de vista debe convertirse en el elemento secundario de su controlador principal:

  • Llama a addChildViewController: en tu controlador de vista padre. El elemento secundario se agrega automáticamente a la matriz childViewControllers de los padres, que lo conserva.
  • Obtiene la vista del controlador de vista secundaria en su interfaz, si eso es lo que significa agregar un controlador de vista secundaria.
  • Usted envía didMoveToParentViewController: al niño con el controlador de vista padre como su argumento.

Cuando un controlador de vista deja de ser el elemento secundario de su controlador principal:

  • Envía willMoveToParentViewController: al niño con un argumento nulo.
  • Quita la vista del controlador de vista secundaria de su interfaz, si eso es lo que significa eliminar un controlador de vista hijo.
  • Usted envía removeFromParentViewController al niño. El elemento secundario se elimina automáticamente de la matriz childViewControllers del elemento principal, que lo libera.

Finalmente, cuando realiza una transición modal, definesPresentationContext en su cadena primaria se vuelve crucial para que la vista modal sepa qué vista reemplazar en la interfaz. Este ejemplo descargable de mi libro demuestra las distinciones necesarias:

https://github.com/mattneub/Programming-iOS-4-Book-Examples/tree/master/convertedToIOS5/p476containerController2