Как получить уведомление, когда UIView отключен от своего супервизора?

Кажется, что у UIView нет таких методов, как « didRemoveFromSuperview » или « willRemoveFromSuperview ». Затем, как прослушать событие, когда UIView удален из своего супервизора? Я должен использовать KVO? заранее спасибо!

4 Solutions collect form web for “Как получить уведомление, когда UIView отключен от своего супервизора?”

Эта тема довольно старая, но я нашел способ ее сделать. Поскольку поиск Google не был достаточно полезным, вот он (взятый из документов UIView)

Наблюдение за изменениями, связанными с просмотром

– didAddSubview:

– willRemoveSubview:

– willMoveToSuperview:

– didMoveToSuperview

– willMoveToWindow:

– didMoveToWindow

Это работает (проверено на iOS8):

 -(void) didMoveToWindow { [super didMoveToWindow]; // (does nothing by default) if (self.window == nil) { // YOUR CODE FOR WHEN UIVIEW IS REMOVED } } 

Согласно документам UIView :

По умолчанию реализация этого метода ничего не делает. Подклассы могут переопределять его для выполнения дополнительных действий всякий раз, когда изменяется окно.

Свойство window может быть nilЭто происходит, когда получатель только что был удален из своего супервизора или когда получатель только что добавлен в супервизор, который не привязан к окну.

Вы можете подклассифицировать свой UIView и отправлять уведомления из него - (void)removeFromSuperview .

 - (void) willMoveToSuperview: (UIView *) newSuperview{ if(newSuperview == nil){ // UIView was removed from superview } else { // UIView was added to superview } } 
  • Как иметь полный оборот кругового объекта с использованием анимации uiview
  • Переход UIViewWithView не работает
  • Swift: hitTest для UIView под другим UIView
  • Предоставление UIView в PDF как векторы на iPad - Иногда отображается как растровое изображение, иногда как векторы
  • UIButton не отображается в UIViewController
  • snapshotViewAfterScreenUpdates создает пустое изображение
  • Пользовательское анимированное свойство возвращает NSNull?
  • Когда представления автоматически преобразуются на основе их супервизора?
  • Как добиться многоуровневого рисования с помощью OpenGL ES на iOS?
  • Как узнать, видимо ли представление UIViewController
  • Можно ли подключить верхнюю часть UIView к нижней части панели навигации?
  • Interesting Posts

    FloatValue с 2 десятичными знаками от textField

    Что такое свойство edge edge в UIViewController?

    Клавиатура UIInputViewController не отображается в iOS 8

    Скрывать «select», «selectAll», «вставлять» в UIMenuController, отображаемый при вводе в AccessAccessoryView?

    iOS – UISplitViewController с раскадрой – несколько основных видов и несколько подробных представлений

    Возможно ли установить неподписанную прошивку на устройствах iOS?

    Как AKNodeOutputPlot AudioKit извлекает данные?

    В iOS, как вы можете программно заполнить поле формы pdf?

    GKAchievement reportAchievements дает NSIllegalArgumentException

    Как показать «Нет результатов» в UITableView, если результат поиска не возвращен?

    SWIFT: NSURLSession преобразует данные в String

    Масонская анимацияWithDuration не оживляет

    facebook swift sdk 0.2.0 swift 3.1 страница входа остается открытой

    Сохранение и восстановление состояния ядра Bluetooth не работает, не удается перезапустить приложение в фоновом режиме

    Как изменить цвет слова в UITextView?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.