iPhone 上的 Popover (Swift 3) 来自编程方式创建的按钮



当我单击以编程方式创建的按钮时,我试图在iPhone上出现一个弹出框。但是,我发现弹出窗口正在占据整个屏幕。到目前为止,我已经在弹出框视图控制器的类中编写了以下内容:

import UIKit
class GroupSetsPopoverController: UIViewController, UIPopoverPresentationControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
self.preferredContentSize = CGSize(width: 375, height: 162)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "infoButtonSegue" {
let popoverViewController = segue.destination as! GroupSetsPopoverController
let pvc = popoverViewController.popoverPresentationController
pvc?.delegate = self
//popoverViewController.modalPresentationStyle = UIModalPresentationStyle.popover
//popoverViewController.popoverPresentationController!.delegate = self
}
}
func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
return .none
}
}

任何指导将不胜感激。我试图在Stack Overflow上遵循各种教程和帖子,但无济于事。

您可以查看答案和库以获取参考。如果 GroupSetsPopoverController 是您的弹出框视图控制器,您可以执行以下操作:

init(for sender: UIView)) {
super.init(nibName: nil, bundle: nil)
modalPresentationStyle = .popover
guard let pop = popoverPresentationController else { return }
pop.sourceView = sender
pop.sourceRect = sender.bounds
pop.delegate = self
}

最新更新