0

我正在呈现一个模态弹出视图,如下所示:

let popover = StatueSelectionController(collectionViewLayout: UICollectionViewFlowLayout())
popover.delegate = self

popover.modalPresentationStyle = .popover
popover.popoverPresentationController?.barButtonItem = navigationItem.rightBarButtonItem
popover.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.up;
popover.preferredContentSize = CGSize(width: 200, height: 300)
present(popover, animated: true, completion: nil)

尽管它确实实现了该协议,但popover.delegate = self与它无关。UIPopoverControllerDelegate

问题是弹出框占据了整个视图。StatueSelectionController, 即 a UICollectionViewController, 填满整个屏幕并且不会改变preferredContentSize.

我在这里做错了什么?

4

1 回答 1

0

如果要强制 popOver 不覆盖 iPhone 上的全屏,则必须UIPopoverPresentationControllerDelegate在代码中添加一个方法

func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
    return .none
}
于 2018-01-16T05:08:37.870 回答