Wie funktioniert Zugriff auf eine ein-View-Controller ist super?
-
06-07-2019 - |
Frage
Ich habe ein Problem, und ich werde versuchen, das Problem zu erklären:
- Ich habe ein Haupt
UIViewController
(Vollbild) - Ich habe eine sekundäre
UIViewController
(SetBounds) -
Ich habe meinen sekundären Blick auf meine
mainView
mit diesem:[mainController.view addSubview:secondaryController.view];
-
Ich habe eine dritte Controller:
modalController
, ich es zu meiner sekundären IDE-Controller wie folgt aus:[secondaryController presentModalViewController:modalController animated:YES];
-
I Kalkül machen basierend auf einige Ereignisse innerhalb meiner
modelController
. -
Ich bin in der Lage Nachrichten von meinem
modalController
meinessecondaryController
senden mit:[[self parentViewController] performSelector : @selector(myMethodInSecondaryController:) withObject : myObject afterDelay : .5];
Hinweis: "Selbst" entspricht die
modalController
-
Ich brauche „myObject“ zu meinen
mainController
passieren, aber ich kann nicht Bezug auf meinemainController
vomsecondaryController
machen. Ich versuchte dies:[[self parentViewController] performSelector : @selector(myMethodInMainController:) withObject:myObject afterDelay : .5];
Hinweis: "Selbst" entspricht die
secondaryController
, aber es funktioniert nicht, ich habe Zugriff auf meine mainController Ansicht mit:
self.view.superview
Hinweis: "Selbst" ist mein
secondaryController
aber nicht zu deren Steuerung.
Lösung
In Ihrem sekundären Controller, versucht
id mainViewController = [self.view.superview nextResponder];
und prüfen Sie, ob dies der View-Controller ist für Sie suchen.
Apples Dokumentation von -[UIResponder nextResponder]
:
UIView implementiert diese Methode durch das UIViewController Objekt zurückkehrt, die es schafft (wenn es einen hat) oder seine Superview (falls dies nicht der Fall)