Popover in swift 3 on iphone ios
24,729
Change your delegate method to:
func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
// return UIModalPresentationStyle.FullScreen
return UIModalPresentationStyle.none
}
![SamuelTJackson](https://i.stack.imgur.com/4Ug2G.png?s=256&g=1)
Author by
SamuelTJackson
Updated on March 14, 2020Comments
-
SamuelTJackson over 4 years
I am trying to make a popover menu with the following code:
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 } }
This is working on iPad, but, on an iPhone, the popup takes the whole iPhone screen. I just want a small window with an arrow. I found several tutorials but none worked for me.
-
Gopal Devra almost 7 years@TonyMkenu Not working in iPhone, please let me know how does it work?
-
Lim Thye Chean almost 7 yearsWhat if you only want one of the controller to be popover not all? I have a situation that I only want one of the controllers to be popover.
-
Murray Sagal over 6 years@LimThyeChean The delegate method hands you the controller. You could guard for that one (because you've kept a reference to it) and return accordingly.
-
ndreisg over 6 yearsIt seems like this does not work with a TableViewController as Popover