Я хочу вставить поповер поверх моего контроллера вида.В настоящее время этот код находится в моем подклассе UIView
:
func presentGameOver() {
let transition: CATransition = CATransition()
transition.duration = 0.75
transition.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
transition.type = CATransitionType.fade
let currentController = (getCurrentViewController() as! UINavigationController).topViewController!
currentController.navigationController!.view.layer.add(transition, forKey: nil)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "GameOverViewController") as! GameOverViewController
vc.modalPresentationStyle = UIModalPresentationStyle.popover
vc.highScore = highScore
vc.score = score
vc.FONT_H = FONT_H
vc.delegate = self
currentController.navigationController?.pushViewController(vc, animated: false)
}
Это мое объявление класса:
class GridView: UIView, ModalHandler, UIPopoverPresentationControllerDelegate {
У меня также есть эти два метода:
func popoverPresentationControllerShouldDismissPopover(_ popoverPresentationController: UIPopoverPresentationController) -> Bool {
return false
}
func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.none
}
В раскадровке для контроллера представления, которым я хочу быть popover, я устанавливаю размер контента ( this и this ).
Однако,когда отображается поповер, он отображается в полноэкранном режиме.Когда я раньше пользовался поповерами, я представлял их.Не работает ли отображение поповера с помощью pushViewController()
?