【问题标题】:Display popover as full screen for iPhone将弹出窗口显示为 iPhone 的全屏
【发布时间】:2018-06-27 11:16:16
【问题描述】:

我正在尝试使用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 有任何解决方案或任何建议吗?

更新:我想这样实现:

【问题讨论】:

    标签: ios swift uipopovercontroller


    【解决方案1】:

    更新以下几行

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

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

    【讨论】:

    • 在`let popover = vc.popoverPresentationController!`上给出零错误
    • 我不想全屏
    • 那你想要什么,你能不能更新问题以便给出正确的答案
    • 我只想要尺寸为 (width: 180, height: 75) 的 popOver
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 2017-08-30
      • 1970-01-01
      相关资源
      最近更新 更多