iOS - Split View Controller - Wie bekomme ich einen Zeiger (Referenz) auf den Detail View Controller aus dem Master View Controller?
iOS - Split-View-Controller - Wie bekomme ich einen Zeiger (Referenz) in der Detail-View-Controller (die größere rechts) aus dem inneren des Master-View-Controller (das kleinere Links)?
Mein Bauchgefühl sagen mir die Wichtigsten Split-View-Controller sollte einen Verweis auf Detail View Controller und zu meiner eigenen Master-View-Controller, aber ich kann nicht herausfinden, wie um es zu bekommen.
Irgendwelche Gedanken?
InformationsquelleAutor der Frage unom | 2014-08-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Split-view-Controller tun Verweise auf Ihre master-und detail-view-Controller, über den
viewControllers
Eigenschaft.In iOS 7.x und unten, die
viewControllers
array sollte genau zwei view-controller-Objekte. Das erste Objekt ist der master-view-controller und das zweite Objekt ist der detail-view-controller.In iOS 8.0 und höher, die
viewControllers
array hat mindestens eine view-controller-Objekt – master (oder "primären") view-controller. Wenn eine zweite view-controller-Objekt ist in dem array, dann ist das detail (oder "Sekundär") - view-controller. Wenn der split-view-controller ist zusammengebrochen, nur die master-view-controller ist in diesem array, und wenn es erweitert wird, befinden sich sowohl der master-und dem detail-view-Controller.Können Sie die
splitViewController
Eigenschaft aller view-Controller, um Ihre split-view-controller, und von dort aus verwenden Sie dieviewControllers
Eigenschaft, ob Sie Ihre master-oder detail-view-Controller, etwa so:Swift:
Objective-C:
Den
splitViewController
Eigenschaft arbeitet, indem man sich die view-controller Hierarchie und versuchen zu finden, einer split-view-controller, dass die aufrufende view-controller ist in. Wenn der view-controller ist nicht im split-view-controller, dann wird die Eigenschaftnil
. Es funktioniert genauso wie dienavigationController
undtabBarController
view-controller-Eigenschaften.Können Sie die master-und detail-view-Controller einfacher Zugriff über eine Erweiterung in Swift (oder eine Kategorie in Objective-C) auf
UISplitViewController
wie so (ersetzen Sie allexx_
's mit einem eigenen Präfix, wenn Sie mit Objective-C):Swift:
Objective-C:
Können Sie dann nutzen Sie diese Eigenschaften wie folgt:
Swift:
Objective-C:
InformationsquelleAutor der Antwort TylerTheCompiler
Erstellen Sie eine property in Ihrem UISplitViewController Unterklasse:
Laut apples Dokumentation, das sollte manchmal bringt null, aber in meiner Erfahrung, es gibt immer den detail-view-controller, unabhängig von Staat.
Auch nicht nennen diese Eigenschaft "detailViewController" statt "_detailViewController" - Apple ist anscheinend schon mit diesem Namen unter der Haube, und es wird Durcheinander mit Ihrem UI.
UISplitViewController ist wirklich kitschig und braucht eine Menge Aufräumarbeiten und korrigiert Dokumentation...
InformationsquelleAutor der Antwort user1021430