将弹出式窗口显示为iPhone的全屏

时间:2018-06-27 11:16:16

标签: ios swift uipopovercontroller

我正在尝试使用UIPopoverPresentationController来显示不会占据整个屏幕的弹出窗口。已经检查过this和其他教程,但没有用。

这是我的代码:

  @IBAction func temp(_ sender: UIButton) {
    let vc = UIStoryboard(name: "StayView", bundle: nil).instantiateViewController(withIdentifier: "StayViewPopOverViewController") as! StayViewPopOverViewController

    vc.modalPresentationStyle = .popover
    vc.preferredContentSize = CGSize(width: 180, height: 75)

    let popover = vc.popoverPresentationController!
    popover.sourceView = self.btnTemp
    popover.sourceRect = self.btnTemp.bounds
    popover.delegate = self
    self.present(vc, animated: true, completion: nil)
}

我的委托方法:

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

但覆盖整个屏幕。
我试图在委托方法上设置断点,但解释器并没有就此停止。

anyBody可以提供任何解决方案或建议吗?

更新:我要实现以下目标:
enter image description here

2 个答案:

答案 0 :(得分:0)

更新以下几行

 vc.modalPresentationStyle = .popover
 vc.preferredContentSize = CGSize(width: 180, height: 75)

vc.modalPresentationStyle = .overFullScreen
vc.preferredContentSize = view.frame.size

答案 1 :(得分:0)

最后我得到了答案。
只需像这样更新我的委托方法:

 func adaptivePresentationStyle(
    for controller: UIPresentationController,
    traitCollection: UITraitCollection)
    -> UIModalPresentationStyle {
        return .none
}

就这样...效果很好!!!