swift 3中的popover代码无效

时间:2017-05-10 17:47:47

标签: ios swift

我尝试通过创建一个新的视图控制器并在另一个视图控制器中将其作为popover呈现在swift 3中的popover,我已经看过很多教程但是这段代码似乎没有在swift 3上工作。任何人都可以帮忙?它似乎在App委托文件中给我一个错误。

here I am creating the segue with identifier "popoverInfo" so if the Hola button is pressed, it should show the popover view controller

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "popoverInfo" {

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




    }




}

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
    return UIModalPresentationStyle.none
}

1 个答案:

答案 0 :(得分:0)

你可以实现这样的弹出:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "popoverInfo" {

    segue.destination.modalPresentationStyle = .popover

    if let popover = segue.destination.popoverPresentationController {

        popover.delegate = self

        popover.sourceRect = // CGRect
        popover.sourceView = // UIView
        popover.permittedArrowDirections = .any
        popover.canOverlapSourceViewRect = // Bool
    }
}

然而,Popovers将像iPhone上的普通模态一样。弹出窗口仅适用于iPad。 (有一些方法可以破解它,但我不知道苹果是否会批准)

此代码改编自我目前正在处理的项目,让我知道它是否对您不起作用,我可以再看看。