Как получить уведомление, когда 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 вызывает как init, так и initWithFrame?
  • Добавить представление MPMoviePlayerController в UIView
  • Как инициализировать представление без известного фрейма?
  • Прозрачный взгляд на другой прозрачный UIView с непрозрачным контентом?
  • Удалить вид, если выходить наружу
  • iOS loadNibNamed путаница, что лучше всего?
  • Как заставить игнорировать UIView, не выпуская его?
  • Как сделать снимок экрана и отправить его по электронной почте?
  • Как отображать UIView над клавиатурой в iOS
  • Добавление подпрограмм поверх иерархии UIView с программным созданием
  • Настройка режима содержимого для чего-то, кроме UIImageView в iOS
  • Interesting Posts

    Получить текущий контроллер представления из делегата приложения

    Как изменить индивидуальный квадратный цвет по отношению к музыке за биты непрерывно для создания визуализатора в IPhone?

    UITextField подкласса messing adjustFontSizeToWidth

    Объектив-C и ARC? Использовать или не использовать?

    JSTilemap – Загрузка только видимых фрагментов

    Сохранить словарь в NSUserDefaults Swift

    JSONModel и OData

    преобразовать дату NSstring в дату UTC

    При использовании следующей и предыдущей функциональности в AudioStreamer две или более песни начинаются вместе

    Определите общее вращение дельты iPhone

    Как проверить стиль оповещений для нашего приложения?

    Добавление границы только к одной стороне компонента <Text /> в React Native (iOS)

    Найти элемент и изменить значение в настраиваемом массиве объектов – Swift

    iOS: Изменение высоты шрифта NSMutableAttributedString без изменения ширины шрифта?

    NSURLSession – использование высокой памяти

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