erstellen von Code eine Eltern/Kind-Beziehung zwischen zwei View-Controller erstellen im Grunde ist es nur darum, so etwas wie tun:Wie eine Container/Kind Viewcontroller Beziehung in Interface Builder
[self addChildViewController:childViewController];
[self.view addSubview:childViewController.view];
wo Selbst ist die Elternsicht-Controller.
Aber, Was ist, wenn ich die gleiche Beziehung vollständig von Interface Builder erstellen möchte?
Oder mit anderen Worten: Gibt es eine Möglichkeit, das Verhalten der Methode addChildViewController mit Interface Builder neu zu erstellen? ich eine Menge Dokumentation über das hat hier nicht finden, eine alte ungelöste Post über das Thema ist: https://devforums.apple.com/message/455758#455758
Ohne Einrichtung richtig die addChildViewController Beziehung, keine der Rotationsverfahren sind mein Kind-View-Controller weitergeleitet Hier kommt meine Frage her.
Dies ist, was ich in IB getan habe:
- Drag & Drop ein "View Controller" Objekt aus der "Objektbibliothek" Platte in die "Objekte" Panel
- im Identitäts Inspektoren ich habe seine Klasse meiner UIViewController Unterklasse („Items view Controller“) geändert
- verbunden, um die Ansicht Auslass an den Controller
- alle anderen erforderlichen Auslässe an den Controller angeschlossen (Listenname, Tabellenansicht)
Das erste "Ansicht" -Objekt in dem Bild ist die Ansicht meines übergeordneten Ansichtscontrollers, stattdessen ist die hervorgehobene "Ansicht" die Ansicht des Kindansicht-Controllers ("Item View Controller").
Der Container-Controller auch seine untergeordnete Instanz durch eine zusätzliche IBOutlet behalten:
@property (nonatomic, strong) IBOutlet ItemsViewController *itemsViewController;
Dank
Update 1: Wenn ich manuell die Eltern/Kind-Set Beziehung in ViewDidLoad des Container-Controllers sind alle Rotationsmethoden korrekt an das Kind weitergeleitet.
[self addChildViewController:self.itemsViewController];
Aber ich weiß wirklich nicht, ob dies der richtige Weg zu tun, das heißt, da ich alle mit IB tun möchte.
Update 2: Dank für seinen Hinweis auf @micantox die „Container-Ansicht“ in der Objektbibliothek zu verwenden, habe ich meine xib-Datei in ein Storyboard und jetzt das Kind View-Controller umgewandelt wird hinzugefügt das übergeordnete Element, also muss ich es nicht manuell mit addChildViewController aus dem Code hinzufügen, und die Rotationsmethoden werden wie erwartet weitergeleitet.
„Container View“ implementiert im Grunde die einbetten segue und nur diese von iOS 6.
unterstützt wird, ist ein aktualisierter Screenshot von meinem Storyboard:
Von dem, was ich weiß, ist der Container-View-Controller nicht nur auf das iPad beschränkt, sondern auch auf dem iPhone [link] (http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html), Ich habe es in mehr als einer App verwendet. In diesem Fall möchte ich das auf dem iPad machen. – ggould75
Wie auch immer, die Art und Weise, dies im Interface Builder zu tun, geschieht über das Container View-Objekt in der Objektbibliothek! So können Sie Ihr Kind verwalten View separat Controller anzeigen – micantox
Vielen Dank, ich wusste nicht, die Existenz dieses Objekts, tatsächlich arbeite ich mit einer einzigen XIB-Datei statt mit einem Storyboard, und es scheint nur auf Storyboard verfügbar sein . Ich werde es versuchen ... – ggould75