苹果ios swift 3中的popover

我想用下面的代码做一个popup菜单:

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 } } 

这是在iPad上工作,但在iPhone上,popup窗口占用了整个iPhone屏幕。 我只想要一个带箭头的小窗户。 我发现了几个教程,但没有为我工作。

将您的委托方法更改为:

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