Popover涵盖整个iOS屏幕

时间:2017-08-31 20:11:15

标签: ios swift viewcontroller uibarbuttonitem popover

我正在尝试实现一个弹出窗口,其锚点是我的iPhone应用程序的栏按钮项目。我已经通过segue通道将条形按钮项连接到视图控制器,该通道配置为显示为“作为弹出窗口显示”。我还为视图控制器设置了自己的大小,并选择了“使用首选显式大小”。根据以前关于这个类似主题的帖子,我为我的popover实现了以下代码。但是,popover仍然覆盖整个屏幕,可能是因为我没有调用adaptivePresentationStyle方法(“hello”不会打印到屏幕上)。请注意,我还实现了UIPopoverPresentationControllerDelegate。我哪里出错了?

        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
        }

谢谢!

1 个答案:

答案 0 :(得分:1)

在我的情况下,您的代码正常工作并且弹出窗口正常显示!

enter image description here

确保您的segue有合适的"种类":"作为Popover"。

enter image description here