В моем приложении я показываю popover, что приводит к обесцветению всех тонированных UIImageViews позади popover. Я также хочу, чтобы это поведение выполнялось для UILabels и пользовательских подклассов UIView на экране. Чтобы достичь этого, мне нужно наблюдать, когда открывается popover, и когда он закрывается, поэтому я могу обновить свои цвета вручную.iOS: Как заметить, когда представление находится за popover?
Мой первый подход состоял в том, чтобы наблюдать за объектами U12iew tintColor
или tintAdjustmentMode
. Как это:
override var tintAdjustmentMode: UIViewTintAdjustmentMode {
didSet {
// This does not get called
}
}
Однако это, похоже, не дозвонились, хотя self.tintAdjustmentMode
равно true
когда я проверяю вручную в то время как поповер показано.
Другим подходом было бы вручную вызвать вспомогательный метод из ViewController, который представляет popover (в данном случае CollectionViewController). Проблема в том, что это не работает, когда другой ViewController (скажем, встроенный контроллер навигации) представляет popover. Так что это не то, чего я хочу.
Что такое другие подходы, которые позволяют мне реагировать на popover, отображаемый на текущем контроллере представления?