Estoy tratando de hacer una ventana emergente menú con el siguiente código:

import UIKit

class BeobachtungViewController: UIViewController, UIPopoverPresentationControllerDelegate {


    @IBAction func addClicked(_ sender: AnyObject) {
        //get a reference to the view controller for the popover
        let popController = UIStoryboard(name: "Personenakte", bundle: nil).instantiateViewController(withIdentifier: "popoverId")

        //set the presentation style
        popController.modalPresentationStyle = UIModalPresentationStyle.popover

        //set up the popover presentation controller
        popController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.up
        popController.popoverPresentationController?.delegate = self
        popController.popoverPresentationController?.sourceView = sender as! UIView //button
        popController.popoverPresentationController?.sourceRect = sender.bounds

        //present the popover
        self.present(popController, animated: true, completion: nil)
    }

    //UIPopoverPresentationControllerDelegate method
    func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
        //Force popover style
        return UIModalPresentationStyle.none
    }
}

Esto está funcionando en el iPad, pero, en un iPhone, la ventana emergente que se toma toda la pantalla del iPhone. Yo sólo quiero una pequeña ventana con una flecha. He encontrado varios tutoriales pero ninguno funcionó para mí.

  • hasta donde yo sé, esa es la intención de comportamiento por parte de apple, no hay pop-ups en el iphone
  • el código que está funcionando para mí…. pero el delegado no es correcto

1 Comentario

  1. 57

    Cambiar su método de delegado a:

    func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
        //return UIModalPresentationStyle.FullScreen
        return UIModalPresentationStyle.none
    }
    • No funciona en iPhone, por favor, hágamelo saber cómo funciona?
    • Lo que si desea que sólo uno de los controlador de ventana emergente no todos? Tengo una situación que solo quiero uno de los controladores de ser ventana emergente.
    • El delegado método manos el controlador. Usted podría guardia para que uno (porque usted ha mantenido una referencia a él), y el retorno en consecuencia.
    • Parece que esto no funciona con un TableViewController como ventana emergente

Dejar respuesta

Please enter your comment!
Please enter your name here