comment faire pour centrer un popoverview en swift

J'ai le code suivant pour afficher une popoverview (boîte de dialogue) sans flèche, qui fonctionne très bien. Le seul problème, c'est que le dialogue est affiché en haut à gauche (IPad). Je voudrais centrer l'affichage sur l'écran.

Les éléments à modifier ou à ajouter dans mon code ? :

func show_help(){


    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let controller = storyboard.instantiateViewControllerWithIdentifier("Help") as! UIViewController

    controller.modalPresentationStyle = UIModalPresentationStyle.popover

    let popoverPresentationController = controller.popoverPresentationController

    //result is an optional (but should not be nil if modalPresentationStyle is popover)
    if let _popoverPresentationController = popoverPresentationController {

        //set the view from which to pop up
        _popoverPresentationController.sourceView = self.view;
        _popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirection.allZeros;
        //present (id iPhone it is a modal automatic full screen)
        self.presentViewController(controller, animated: true, completion: nil)
    }

}

D'Autres Infos

comment faire pour centrer un popoverview en swift

De mon point de vue, qui est lié à mon viewcontroller j'ai défini la taille désirée comme ceci:

override func viewDidLoad() {
        let dialogheigth:CGFloat = self.view.frame.height * 0.5;
        let dialogwidth:CGFloat = self.view.frame.width * 0.5;
        self.preferredContentSize = CGSizeMake(dialogwidth,dialogheigth);
}
  • pouvez-vous juste après la capture d'écran? Et puis je sais que c'est poping entièrement?
  • Merci beaucoup pour votre aide. J'ai juste ajouté une capture d'écran et code de mon point de vue. Le bleu est la couleur de l'arrière-plan. Le blanc est ma liste. Le code supplémentaire montre, que j'ai mis la taille désirée de la liste.
  • Normalement, vous devriez utiliser popoverLayoutMargins dans ce cas. Mais regarde ici: stackoverflow.com/a/26632329/826716 , il est cassé dans iOS 8.
InformationsquelleAutor mcfly soft | 2015-08-01