¿Cómo se accede a un controlador de vista súper?
-
06-07-2019 - |
Pregunta
Tengo un problema e intentaré explicar el problema:
- Tengo un
UIViewController
principal (pantalla completa) - Tengo un
UIViewController secundario
(setbounds) -
Agregué mi vista secundaria a mi
mainView
usando esto:[mainController.view addSubview:secondaryController.view];
-
Creé un tercer controlador:
modalController
, lo agregué a mi controlador secundario de esta manera:[secondaryController presentModalViewController:modalController animated:YES];
-
Hago cálculos basados ??en algunos eventos dentro de mi
modelController
. -
Puedo enviar mensajes desde mi
modalController
a midaryController
usando:[[self parentViewController] performSelector : @selector(myMethodInSecondaryController:) withObject : myObject afterDelay : .5];
NOTA: " self " corresponde al
modalController
-
Necesito pasar " myObject " a mi
mainController
, pero no puedo hacer referencia a mimainController
desde eldaryController
. 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.
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)