我的popover一直延伸到ViewController的底部

时间:2016-03-11 04:09:48

标签: swift popover

我花了一整天时间构建并重新构建一个简单的弹出视图。但无论我做什么,popover视图一直延伸到ViewController的底部,显示popover。我是新手但是已经搜索了一整天,并且无法找到任何有效的解决方案为了我。我将不胜感激任何帮助!在下面找到我的代码:

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

以下是结果的屏幕截图。 popover应该是50乘50,但它一直延伸到ViewController的底部。

1 个答案:

答案 0 :(得分:0)

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

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

这使得弹出窗口的行为与普通尺寸的iPhone,iPhone 6 plus或iPad设备的行为相同。