Auf diese Weise können Sie Displaymode auf UISplitViewController überprüfen
%Vor%Ich habe ein %code% mit einem Universal Storyboard in Xcode 6 implementiert. %code% wird jetzt auf iPhone mit iOS 8 unterstützt, und standardmäßig wird immer nur ein View-Controller auf dem Bildschirm angezeigt.
Ich muss wissen, wenn sowohl der Master- als auch der Detailansicht-Controller beide auf dem Bildschirm (iPad) sind. Ich muss die Disclosure-Indikatoren von %code% s entfernen, wenn beide auf dem Bildschirm sind - render sie nur, wenn nur der Master-View-Controller auf dem Bildschirm (iPhone) ist, genau wie die Einstellungen app.
Ich könnte das Gerät einfach erkennen und nur hinzufügen, wenn es ein iPhone ist, aber das ist nicht zu empfehlen. Es ist möglich, dass ein neues Gerät nur einen View-Controller anzeigt und sich nicht als Telefon identifiziert. Ein weiterer Gedanke wäre, zu erkennen, ob %code% %code% ist, aber das wird nicht funktionieren, weil es nicht %code% auf iPhone oder iPad ist, weil es tatsächlich in einem Split-View-Controller auf dem iPhone ist.
Ist es möglich, zu erkennen, wenn sowohl der Master- als auch der Detailansicht-Controller gleichzeitig auf dem Bildschirm angezeigt werden?
%code%
%code%
Diese Eigenschaft wird auf YES gesetzt, wenn der Inhalt des Split-View-Controllers ist semantisch zu einem einzigen Container zusammengelegt. Kollabieren passiert wenn der Split-View-Controller von einem horizontal regulär wechselt zu einer horizontal kompakten Umgebung. Nachdem es zusammengebrochen ist, Der Split-View-Controller meldet nur eine untergeordnete Ansicht Controller in seiner ViewControllers-Eigenschaft. Der andere Ansichtscontroller wird mit Hilfe von in den Inhalt des anderen View-Controllers kollabiert das Delegate-Objekt oder vorübergehend verworfen. Wenn es zusammenbrach, das Die Eigenschaft "displayMode" hat keinen Einfluss auf das Erscheinungsbild der geteilten Ansicht Controller-Schnittstelle.
Der Wert dieser Eigenschaft ist NEIN, wenn der Split-View-Controller vorhanden ist in der Lage, beide Kind View Controller gleichzeitig anzuzeigen Zeit, , auch wenn es sie im Moment nicht zeigt . In diesem Erweiterter Modus, die Konfiguration des untergeordneten View-Controllers des untergeordneten Elements View-Controller wird durch die Eigenschaft displayMode bestimmt. Im Darüber hinaus enthält die ViewControllers-Eigenschaft sowohl das primäre als auch das Secondary View Controller.
Bei einem Übergang von einer erweiterten zu einer reduzierten Schnittstelle der Wert von dieser Eigenschaft ist NEIN, bis der Kollaps-Übergang beendet ist und alle relevanten Delegiertenmethoden wurden aufgerufen. Ähnlich, Beim Übergang zurück zu einer erweiterten Schnittstelle ist der Wert YES bis der Übergang beendet ist.
aus der Klassenreferenz.
Danke an Frederik A. Winkelsdorf:
Es sollte beachtet werden, dass .collapsed auch false meldet, wenn a DetailViewController wird gezoomt, um den gesamten Bildschirm abzudecken. Wenn du wirklich Möchten Sie wissen, ob beide sichtbar sind, prüfen Sie neben der Eigenschaft .collapsed für splitViewController.displayMode == UISplitViewControllerDisplayMode.AllVisible. Ich fand es nützlich, wenn Umgang mit iPhone 6 Plus Landscape Layouts.