¿Puedo usar el storyboard de Xcode para crear popovers sin escribir ningún código?

Casi sin código. Construya un controlador de Vista en el guión gráfico, luego haga que una función responda a una selección o botón o algo. La llamada a una función como esta:

func privado presentMyViewController () {

if let controller = storyboard! .instantiateViewController (withIdentifier: “MyViewController”) como? MyViewController {

controller.modalPresentationStyle = .popover

controller.preferredContentSize = CGSize (ancho: 350, alto: 440)

let popController = controller.popoverPresentationController

popController? .permittedArrowDirections = .any

popController? .sourceView = ver

popController? .sourceRect = view.bounds

popController? .delegate = self

present (controlador, animado: verdadero, finalización: nulo)

}

}

Luego debe implementar las funciones de delegado. La primera es si quieres que parezca un popover en un iPhone:

// MARK: Funciones de delegado de Popover Presentation Controller

func adaptivePresentationStyle (para el controlador: UIPresentationController) -> UIModalPresentationStyle {

volver .ninguno

}

func prepareForPopoverPresentation (_ popoverPresentationController: UIPopoverPresentationController) {

imprimir (“prepararse para la presentación”)

}

func popoverPresentationControllerDidDismissPopover (_ popoverPresentationController: UIPopoverPresentationController) {

print (“descartó”)

}

func popoverPresentationControllerShouldDismissPopover (_ popoverPresentationController: UIPopoverPresentationController) -> Bool {

print (“debería descartar”)

volver verdadero

}