Pregunta

Tengo una interfaz de iPad definida en un guión gráfico, con un SplitViewController. Quiero establecer el delegado de SplitViewController para que apunte al controlador de detalles, pero IB no permitirá que se realice esa conexión.

  • Poner un objeto "objeto" y cambiar la clase a la de mi controlador de detalles hace que el delegado apunte a una instancia diferente del controlador de detalles que el que se muestra.
  • Mis intentos de conectarlo manualmente (en DidfinishLaunching) en el delegado de la aplicación fueron infructuosos, el delegado aún estaba nulo.
  • cambiando al delegado a la aplicación e implementación del protocolo que funcionó, pero pasar los mensajes al controlador de detalles no funcionó (aunque verifiqué que estaba haciendo referencia a la misma instancia).

    nada funciona. Puedo configurar self.splitViewController.delegate = self cuando la vista de detalles se carga, y luego se convierte en el delegado sin ningún problema. Pero extraño ninguna llamada del delegado que suceda antes de ese punto.

    Para el contexto, necesito obtener las llamadas del delegado de SplitViewController para que pueda mostrar un botón en la vista de detalle para mostrar una popover, al igual que la práctica estándar. En este momento, si la aplicación se inicia en Retrato, se debe girar al horizontal y luego volver al botón para mostrar.

    He hecho esto con Xibs "Normal" sin problemas. Parece ser un caso especial del problema más general de que no se le permita conectar las salidas a través de las escenas en un guión gráfico.

¿Fue útil?

Solución

No tengo idea de por qué esto funcionó esta vez y no a las primeras 80 veces, pero agregué esto a mi AppDelegate:

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top