Popover在iPhone上不起作用

时间:2015-05-15 12:38:24

标签: ios swift uipopover

我在我的应用程序中实现了Popover并对其进行了测试。它可以在iPad上正常工作,但是当我在iPhone上测试它时,它将显示完整的故事板,而不是显示Popover。请帮我。

这是我的代码:

@IBAction func MenuIsClick(sender: AnyObject) {
    var moveToNextVC:MenuViewController

    moveToNextVC = self.storyboard?.instantiateViewControllerWithIdentifier("MenuViewController") as! MenuViewController
    moveToNextVC.modalPresentationStyle = .Popover
    moveToNextVC.preferredContentSize = CGSizeMake(200, 200)

    if let popoverController = moveToNextVC.popoverPresentationController {
        popoverController.sourceView = sender as! UIView
        popoverController.sourceRect = CGRect(x: 0, y: 0, width: 85, height: 30)
        popoverController.permittedArrowDirections = .Any
        popoverController.delegate = self

    }
    presentViewController(moveToNextVC, animated: true, completion: nil)

}

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

修改:由于Popover无法在iPhone上运行,但是当引用此EthanStrider/iOS-Projects时,它可以正常工作。怎么样?

3 个答案:

答案 0 :(得分:1)

UIPopoverController's仅适用于iPad。

  

Popover控制器仅适用于iPad设备。   尝试在其他设备上创建一个会导致异常。

虽然使用iOS 8+,但它不再崩溃,它将作为全屏模式演示执行..

答案 1 :(得分:0)

UIPopoverController仅适用于iPad设备。您可以参考Apple docs进行验证。

如果你真的想在iPhone上使用popover,你可以使用像WYPopoverController这样的第三方控件。

答案 2 :(得分:0)

您可以使用此控件。

https://github.com/50pixels/FPPopover/