2016-07-25 25 views
1

Popover nimmt den kompletten Bildschirm, wenn er im Querformat angezeigt wird, funktioniert jedoch im Hochformat korrekt. Außerdem verschwindet es nicht, wenn ich im Querformat außerhalb des Popover klicke.swift - Popover wird im Querformat nicht korrekt angezeigt

Ich verband das Popover durch das Storyboard. Im Popoverviewcontroller platzierte ich eine Ansicht, die die Buttons enthält. Der Code für die viewDidLoad() des popoverviewcontroller ist:

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.preferredContentSize = popoverView.frame.size 
     } 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

Porträt:

enter image description here

Landschaft:

enter image description here

Antwort

2

Sie haben UIPopoverPresentationControllerDelegate Ihrer Klasse hinzuzufügen, wie dies:

swift 3

import UIKit 

class ViewController: UIViewController, UIPopoverPresentationControllerDelegate { 
    ... 

Als zweiter Schritt, fügen Sie die folgende Funktion:

func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle { 
    return UIModalPresentationStyle.none 
} 

Erläuterung: Durch die Rückgabe wird UIModalPresentationStyle wie keine, die ursprüngliche Präsentationsstil gehalten und Ihre popover ist im Querformat nicht bis zum unteren Bildschirmrand verlängert.