Ich möchte immer ein ViewController
in einem Popover auf allen Geräten und allen Ausrichtungen präsentieren. Ich habe versucht, dies zu erreichen, indem ich die UIPopoverPresentationControllerDelegate
angenommen habe und die sourceView
und sourceRect
gesetzt habe.UIModalPresentationPover für iPhone 6 Plus im Querformat zeigt Popover nicht an
Dies funktioniert sehr gut für alle Geräte und Ausrichtungen, außer dem iPhone 6 Plus in Landschaft. In diesem Fall fährt der View-Controller in einem Formular vom unteren Bildschirmrand nach oben. Wie kann ich das verhindern, damit es immer in einem Popover erscheint?
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let popoverPresentationController = segue.destinationViewController.popoverPresentationController
popoverPresentationController?.delegate = self
popoverPresentationController?.sourceView = self.titleLabel!.superview
popoverPresentationController?.sourceRect = self.titleLabel!.frame }
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.None }
Alle Geräte sind unter iOS 8.2 oder höher
Guter Anruf! Ich habe vergessen, dass die Delegate-Methode für 8.3 geändert wurde. –
@PetahChristian Danke! Yeah war eine ziemlich stille Änderung und scheint nur in den API-Diffs dokumentiert zu sein. – Joshua
@Joshua JA! Ich habe implementiert - (UIModalPresentationStyle) adaptivePresentationStyleForPresentationController: (UIPresentationController *) Controller { Rückgabe UIModalPresentationNone; } aber die neue API lösen mein Problem, danke Sir! – Loegic