Pregunta

Tengo un problema e intentaré explicar el problema:

  1. Tengo un UIViewController principal (pantalla completa)
  2. Tengo un UIViewController secundario (setbounds)
  3. Agregué mi vista secundaria a mi mainView usando esto:

    [mainController.view addSubview:secondaryController.view];   
    
  4. Creé un tercer controlador: modalController , lo agregué a mi controlador secundario de esta manera:

    [secondaryController presentModalViewController:modalController animated:YES];
    
  5. Hago cálculos basados ??en algunos eventos dentro de mi modelController.

  6. Puedo enviar mensajes desde mi modalController a mi daryController usando:

    [[self parentViewController]  performSelector : @selector(myMethodInSecondaryController:) withObject : myObject afterDelay : .5];
    

    NOTA: " self " corresponde al modalController

  7. Necesito pasar " myObject " a mi mainController , pero no puedo hacer referencia a mi mainController desde el daryController . Intenté esto:

    [[self parentViewController] performSelector : @selector(myMethodInMainController:) withObject:myObject afterDelay : .5];
    

    NOTA: " self " corresponde al secondaryController

    pero no funciona, tengo acceso a la vista de mi MainController usando: self.view.superview

    NOTA: " self " es mi secondaryController

pero no a su controlador.

¿Fue útil?

Solución

En su controlador secundario, intente

id mainViewController = [self.view.superview nextResponder];

y compruebe si este es el controlador de vista que está buscando.

Documentación de Apple de - [UIResponder nextResponder] :

  

UIView implementa este método devolviendo el objeto UIViewController que lo administra (si tiene uno) o su supervista (si no & # 8217; t)

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