У нас в контроллере представления отображается поповер из UIBarButtonItem
при нажатии.Всплывающее окно отображается нормально, но когда мы нажимаем кнопку «Отмена» внутри всплывающего окна, которое вызывает dismiss(_:completion:)
, или когда мы нажимаем вне всплывающего окна, всплывающее окно исчезает.Тем не менее, все в контроллере представления, который представил поповер, остается не щелкаемым.Когда мы проверили иерархию представления, мы можем видеть, что поповер вместе с его UITrasitionView
все еще находится в окне и блокирует контроллер представления позади него, даже если в симуляторе поповер больше не виден.В чем может быть причина?
Мы правильно установили buttonBarItem
контроллера поповера, и он правильно отображается.Проблема возникает только тогда, когда она отклоняется.
Код выглядит так:
let controller = SettingsController() // the settings controller
controller.popoverPresentationController?.barButtonItem = sender // the UIBarButtonItem
self.present(controller, animated: true, completion: nil)
Ничего не меняется, ДАЖЕ, если мы заменим SettingsController
на простой UIViewController
.
PS Этот контроллер представления, который представляет контроллер представления, использует пользовательский переход, но после проверки кодов с точками останова мы считаем, что это не является причиной того, что пользовательский делегат перехода не участвует в представлении / отклонениитрещать.