Ich habe ein seltsames Verhalten, wenn ich UIViewController in iOS 13 modal präsentiere. Der neue Präsentationsstil, den ich in iOS 13 gesehen habe, sieht folgendermaßen aus:
Der präsentierende Ansichts-Controller wird hinter dem präsentierten Ansichts-Controller angezeigt. Es wird auch nach unten verschoben, um einen "Stapel" nachzuahmen.
Wenn ich View Controller über meine App präsentiere, bekomme ich immer wieder diesen Effekt:
Der Präsentations-View-Controller bewegt sich beim Präsentieren eines neuen View-Controllers überhaupt nicht
Ich benutze diesen Code, um diesen View Controller zu präsentieren:
let controller = storyboard?.instantiateViewController(withIdentifier: "tutorial") as! TutorialController
controller.modalPresentationStyle = .pageSheet
controller.modalTransitionStyle = .coverVertical
present(controller, animated: true, completion: nil)
Hier ist meine Frage: Ich frage mich, warum dies geschieht und ob es eine Möglichkeit gibt, Ansichts-Controller im normalen iOS 13-Stil darzustellen (wobei sich der präsentierende Ansichts-Controller zurückbewegt).
Danke im Voraus!
quelle
controller.modalTransitionStyle = .coverVertical
und sogar das zu kommentierencontroller.modalPresentationStyle = .pageSheet
(obwohl der Präsentationsstil erforderlich wäre, wenn dieser Code auch auf einem iPad ausgeführt wird).Antworten:
Es stellte sich heraus, dass das Problem meine View-Controller-Hierarchie war. Ich konnte das Problem beheben, indem ich den Presenting View Controller zum Root View Controller meiner App machte. Zuerst habe ich den Hintergrund-Controller durch Aufrufen als Root-View-Controller festgelegt
und dann mit meinem vorherigen Code
Ich stellte den View Controller vor. Vielen Dank an alle, die versucht haben zu helfen!
quelle
Ich denke, das Problem kann mithilfe von
vc.modalPresentationStyle = .fullScreen
UINavigationController behoben werden, andernfalls können Sie diese Codes wie folgt verwenden:Da dies mit iOS 13 eine neue Funktion ist, hat Apple den Standardpräsentationsstil von View Controllern in iOS 12 in ein modales Blatt vom Vollbild geändert
quelle
Programmatisch:
Aus dem Storyboard:
Das ist es. Sie müssen überhaupt nicht mit dem Root-Controller oder dem Fenster spielen.
Als Referenz besuchen Sie diesen Artikel .
quelle
Wir können es in der Inspector-Symbolleiste ändern. Um dies zu erreichen: Gehen Sie zum fünften Abschnitt der Inspector Tollbar und ändern Sie das Feld Präsentation in Vollbild.
quelle
Dies sollte die einzige Eigenschaft sein, die Sie festlegen müssen
Detailliert in https://developer.apple.com/videos/play/wwdc2019/224/
quelle