Показывать поповер как полный экран для iPhone - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь использовать UIPopoverPresentationController для отображения всплывающего окна, которое не занимает весь экран. уже проверено это и другие учебники, но не работает.

Вот мой код:

  @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
}

но это покрывает весь экран.
Я пытался поставить точку останова на методе делегата, но интерпретатор на этом не остановился.

Может ли кто-нибудь иметь какое-либо решение или какие-либо предложения?

Обновлено: Я хочу достичь так:
enter image description here

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Наконец-то я получил ответ.
Просто нужно обновить мой метод делегата следующим образом:

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

Вот так ... Отлично работает !!!

0 голосов
/ 27 июня 2018

Обновить следующие строки

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

с

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