我的弹出窗口一直延伸到 ViewController 的底部

My popover extends all the whole way down to the bottom of the ViewController

我已经花了一整天的时间构建和重新构建一个简单的弹出视图。但无论我做什么,弹出窗口视图一直向下延伸到 ViewController 的底部,弹出窗口显示在其中。我是新手,但一整天都在谷歌上搜索,找不到任何解决方案为我工作。我将不胜感激任何帮助!在下面找到我的代码:

ViewController:

class ViewController: UIViewController,
    UIPopoverPresentationControllerDelegate  {

...

@IBAction func studyButtonPressed(sender: AnyObject) {
    self.performSegueWithIdentifier("StudyPopover", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "StudyPopover" {
        let vc = segue.destinationViewController

        let controller = vc.popoverPresentationController

        if controller != nil {
            controller?.delegate = self
        }
    }
}
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
    return .None
}

这是结果的屏幕截图。弹出窗口应该是 50 x 50,但它一直向下延伸到 ViewController 的底部。

所以我终于找到了解决这个问题的方法。当我意识到弹出窗口在大多数设备模拟中工作正常但不适用于 iPhone 6 plus 时,我有了突破。然后我可以缩小我对解决方案的搜索范围,最后发现我必须将 traitCollection: UITraitCollection 添加到我的 adaptivePresentationStyleForPresentationController 函数中。

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController, traitCollection: UITraitCollection)  -> UIModalPresentationStyle {
        return .None
}

这使得弹出框在正常大小的 iPhone、iPhone 6 plus 或 iPad 设备上的行为相同。