Grundlegendes zur Änderung der iOS 6-Schnittstellenausrichtung
HINZUGEFÜGT:
Ich sehe, dass meine Frage gesehen wird oft, ohne upvotes so habe ich beschlossen, dass Sie Jungs nicht das bekommen, was Sie suchen. Umleiten Sie in Frage zu stellen, die wirklich nett über Antwort
Wie behandeln die Orientierung änderungen in iOS6
Spezifischen Anforderungen für die Orientierung ändert:
Eingeschränkte rotation
Upvotes sind willkommen 🙂
Ich habe ein neues Projekt erstellt von Master-Detail-template und versucht zu starten es mit Querformat.
Wie Sie wissen, die
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
Methode ist veraltet und wir müssen
- (NSUInteger)supportedInterfaceOrientations
und/oder
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
Hier ist mein code:
- (NSUInteger)supportedInterfaceOrientations {
NSLog(@"supported called");
return UIInterfaceOrientationMaskAll;//Which is actually a default value
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
NSLog(@" preferred called");//This method is never called. WHY?
return UIInterfaceOrientationLandscapeRight;
}
Wie Sie sehen können ich bin versucht, zurück zu kehren Querformat in bevorzugte Methode, aber es wird nie aufgerufen.
p.s. Dokumentation besagt:
Diskussion Das system ruft diese Methode bei der Darstellung der anzeigen
controller full screen. Implementieren Sie diese Methode, wenn Sie Ihre Ansicht
controller unterstützt zwei oder mehr Orientierungen, aber der Inhalt erscheint
am besten in einer dieser Orientierungen.Wenn Ihr view-controller implementiert diese Methode, dann, wenn präsentiert,
die Ansicht gezeigt, in die bevorzugte Ausrichtung (es kann zwar später
gedreht werden, zum anderen unterstützt rotation). Wenn Sie nicht implementieren
diese Methode, das system bietet die view-controller mit der aktuellen
Orientierung in der Statusleiste.
So, die Frage ist: Warum die prefferredOrientation-Methode wird nie aufgerufen? Und wie sollen wir den Umgang mit verschiedenen Ausrichtungen in verschiedenen Controllern?. Danke!
P. S glaube nicht, markieren Sie die Frage als Duplikat. Ich habe untersucht, die alle ähnliche Fragen und Sie haben keine Antwort für meine.
InformationsquelleAutor der Frage Stas | 2012-10-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Über preferredInterfaceOrientationForpresentation
preferredInterfaceOrientationForPresentation
wird nie genannt, weil diese nicht "vorgestellt", view-controller. Es gibt keine "Präsentation", die hier beteiligt sind."Vorgestellt" und "Präsentation" sind nicht einige vage Begriffe mit der Bedeutung "erscheint". Diese sind präzise technische Begriffe was bedeutet, dass dieser view-controller wird ins Spiel gebracht mit dem Aufruf
presentViewController:animated:completion:
. In anderen Worten, dieses Ereignis kommt nur dann, wenn dies ist, was wir als eine "modale" view controller.Gut, Ihre view-controller ist nicht ein modal-view-controller; es ist nicht ins Spiel gebracht mit
presentViewController:animated:completion:
. Es gibt also keine "Präsentation" beteiligt, und daherpreferredInterfaceOrientationForPresentation
ist hier irrelevant.Bin ich sehr ausführlich darüber, weil ich denke, dass viele Leute werden verwirrt oder getäuscht in der gleichen Weise, die Sie waren. Also vielleicht ist dieser Hinweis wird Ihnen helfen.
Starten Sie in die Landschaft
In iOS 6, die "Unterstützten Ausrichtungen" - Schlüssel im Info.plist ist wesentlich ernster genommen als zuvor. Die Lösung, um Ihre Allgemeine problem der Einleitung in eine gewünschte Ausrichtung:
Stellen Sie sicher, dass "Unterstützte Schnittstelle Orientierungen" in Ihrem Info.plist Listen alle Orientierungen, Ihre app immer erlaubt sein, zu vermuten.
Stellen Sie sicher, dass die gewünschte starten Orientierung ist ersten innerhalb der "Unterstützten Ausrichtungen".
Das ist alles dort ist zu ihm. Sie sollten in der Tat nicht haben, um beliebigen code in das root-Ansicht-controller zu verwalten, die der ersten Orientierung.
InformationsquelleAutor der Antwort matt
Wenn Sie möchten, starten modale Ansicht im Querformat-Modus befindet, setzen Sie einfach diesen code in vorgestellten view-controller
Dann präsentieren diese controller wie gewohnt
InformationsquelleAutor der Antwort FunkyKat
Gibt es eine sehr einfache Antwort: Man kann nur ändern oder reparieren die interface-Orientierung der modale vorgestellt view-controller. Wenn Sie so tun, also mit einer Gegenwärtigen Modal segue in Interface builder (oder den navigation-controller Methode) definieren Sie die zulässigen Orientierungen mit
Diesem Ereignis nicht ausgelöst, wenn Sie nur schieben Sie einen view controller an den navigation-Controller ... also : Sie müssen nicht die Schaltfläche "ZURÜCK" und müssen eine
um es zu schließen.
InformationsquelleAutor der Antwort Tintenklecks