So erstellen Sie eine container - /Kind-viewcontroller-Beziehung im interface builder
Erstellen von code, die eine Eltern/Kind-Beziehung zwischen 2 view-Controller im Grunde ist es nur eine Frage der etwas wie:
[self addChildViewController:childViewController];
[self.view addSubview:childViewController.view];
wo selbst wird die parent-view-Controllers.
Aber, was ist, wenn ich will erstellen Sie die gleiche Beziehung vollständig vom Interface Builder?
Oder in anderen Worten: gibt es eine Möglichkeit, neu zu erstellen, die das Verhalten der Methode addChildViewController mit Interface Builder?
Ich habe nicht eine Menge an Dokumentation, hier ist eine alte ungelöste Beitrag über das Thema: https://devforums.apple.com/message/455758#455758
Ohne richtig einrichten addChildViewController Beziehung, keine der Drehung Methoden weitergeleitet werden, um mein Kind view-controller, wobei hier meine Frage kommen.
Dies ist, was ich getan habe, in IB:
- ziehen und ließ ein "View-Controller" - Objekt aus der "Object Library" - panel in die "Objekte" - panel -
- im identity-inspector, ich habe mich verändert seine Klasse zu meinem UIViewController-Unterklasse ("Items View-Controller")
- verbunden die Aussicht Steckdose an den controller
- angeschlossen alle anderen erforderlichen Anschlüsse der controller (Liste, name, Table View)
Den ersten "View" - Objekt in das Bild ist die Ansicht meiner Eltern view-controller, anstatt das markierte "View" ist die Sicht auf die child-view-controller ("Item View-Controller").
Container-controller auch behalten Ihr Kind etwa durch eine zusätzliche IBOutlet:
@property (nonatomic, strong) IBOutlet ItemsViewController *itemsViewController;
Dank
Update 1: Wenn ich manuell die Eltern/Kind-Beziehung in viewDidLoad des container-controller, all die rotation Methoden korrekt an das Kind.
[self addChildViewController:self.itemsViewController];
Aber ich weiß wirklich nicht, ob dies der richtige Weg, das zu tun, da würde ich gerne tun, alle mit IB.
Update 2: Dank @micantox für seinen Hinweis zur Verwendung der "Container-Blick" in die Objekt-Bibliothek, die ich umgesetzt habe meine xib-Datei, um ein Storyboard und jetzt ist das Kind view-controller Hinzugefügt, um seine Eltern, so dass ich nicht haben, um es manuell hinzufügen von code mit addChildViewController und die rotation Methoden weitergeleitet werden, wie erwartet.
"Container Anzeigen" im Grunde implementiert der einbetten segue und wird nur unterstützt, von iOS 6.
Dies ist eine aktualisierte screenshot von meinem Storyboard:
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den richtigen Weg zur Schaffung von container views für Kinder-view-Controller ist durch den Einsatz des Objekts "Container-Blick" in die Objekt-Bibliothek. Ziehen Sie in Ihrer View-Controller-Szene erstellt eine neue Szene für die child-view-controller, die verwaltet werden können, getrennt von der übergeordneten view-controller.
Auch, wenn Sie versuchen, erstellen Sie ein embed-segue zu einem vorhandenen view-controller in Ihrem storyboard-und control-ziehen Sie aus dem container anzeigen, nicht den container VC, der VC, die Sie einbetten möchten.
Sehr einfache Art und Weise zu tun, es ist einfach instanziieren des Kindes-view-controller durch verweisen auf den storyboard-ID:
Diese Weise können Sie bauen beide view-Controller im interface builder. Sie können die storyboard ID in interface builder: wählen Sie den view-controller und du wirst ein Feld sehen, für die es im identity inspector.