S. Patel
S. Patel

Reputation: 13

Popover covers entire screen iOS

I am trying to implement a popover whose anchor is a bar button item for my iphone app. I have connected the bar button item to the view controller via a segue pathway configured as show as "present as popover." I have also set my own size for the view controller and selected "use preferred explicit size." Based on previous posts about this similar topic, I have implemented the following code for my popover. However, the popover is still covering the entire screen, probably because my adaptivePresentationStyle method is not being called ("hello" does not print to the screen). Note that I have also implemented the UIPopoverPresentationControllerDelegate. Where did I go wrong?

        override func prepare (for segue: UIStoryboardSegue, sender: Any?) {

        if segue.identifier == "popoverLogin" {

        let popoverViewController = segue.destination
        popoverViewController.modalPresentationStyle = UIModalPresentationStyle.popover
        popoverViewController.popoverPresentationController!.delegate = self         }
}

// MARK: - UIPopoverPresentationControllerDelegate method
func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
    // Force popover style
    print ("hello")
    return UIModalPresentationStyle.none
        }

Thanks!

Upvotes: 0

Views: 1079

Answers (1)

Aleksandr Honcharov
Aleksandr Honcharov

Reputation: 2513

In my case your code works and popover is presented normally!

enter image description here

Make sure your segue has the right "Kind": "Present As Popover".

enter image description here

Upvotes: 1

Related Questions