У меня есть главный контроллер представления с именем TestViewController
, у которого есть кнопка, и когда вы нажимаете на кнопку, он открывает контроллер представления всплывающего окна. Когда вы нажимаете на фон, всплывающее окно закрывается, что я хочу отключить. У меня есть этот код в моем контроллере представления всплывающего окна, и он должен работать, но не работает.
extension TestViewController: UIPopoverPresentationControllerDelegate {
func popoverPresentationControllerShouldDismissPopover(_ popoverPresentationController: UIPopoverPresentationController) -> Bool {
print ("TEST") //This does not show up in console
return false
}
}
РЕДАКТИРОВАТЬ:
Это код, который я использую для открытия всплывающего окна.
let popover = storyboard?.instantiateViewController(withIdentifier: "PopoverVC") as! PopOverViewController
popover.modalPresentationStyle = .popover
popover.popoverPresentationController?.sourceView = self.view
popover.popoverPresentationController?.sourceRect = CGRect(x: self.view.bounds.midX, y: self.view.bounds.midY, width: 0, height: 0)
popover.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection(rawValue: 0)
popoverPresentationController?.passthroughViews = nil
popover.dimView2 = self.dimView2
dimView2.isHidden = false
self.present(popover, animated: false)
}
popover.popoverPresentationController?.delegate = self as? UIPopoverPresentationControllerDelegate
. Если вы создадите это как ответ, я проголосую за вас. - person Martheli   schedule 20.07.2017