Это сработало для меня. Это может вам помочь.
var dropDownView : DropDownView!
Настроить раскрывающийся список
dropDownView = Storyboard.Main.instantiateViewController(withIdentifier: "DropDownView") as? DropDownView
self.dropDownView.delegate = self
self.dropDownView?.preferredContentSize = CGSize(width: 200, height: CGFloat((dropDownView.listArr.count) * 35))
let presentationController = AlwaysPresentAsPopover.configurePresentation(forController: self.dropDownView!)
presentationController.sourceView = sender
presentationController.sourceRect = sender.bounds
presentationController.permittedArrowDirections = [.down, .up]
self.present(self.dropDownView!, animated: true)
// MARK: - Метод делегирования текущего контроллера: открывает раскрывающийся список при щелчке значка «Просмотреть больше»
class AlwaysPresentAsPopover : NSObject, UIPopoverPresentationControllerDelegate {
private static let sharedInstance = AlwaysPresentAsPopover()
private override init() {
super.init()
}
func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return .none
}
static func configurePresentation(forController controller : UIViewController) -> UIPopoverPresentationController {
controller.modalPresentationStyle = .popover
let presentationController = controller.presentationController as! UIPopoverPresentationController
presentationController.delegate = AlwaysPresentAsPopover.sharedInstance
return presentationController
}
}