Parece que UIView no tiene métodos como "didRemoveFromSuperview
" o "willRemoveFromSuperview
". Luego, ¿cómo escuchar el evento cuando se elimina una UIView de su supervista? ¿Debo usar KVO? ¡gracias por adelantado!¿Cómo se notifica cuando un UIView se separa de su supervista?
Respuesta
Puede subclasificar su UIView y publicar notificaciones desde su método - (void)removeFromSuperview
.
Encontré.Api doc dice: willMoveToSuperview: Informa al receptor que su superview está a punto de cambiar a la supervista especificada (que puede ser nula). ----------------------------------------- Cuando se llama este método y el parámetro es nulo, la vista se está eliminando – Jagie
Este tema es bastante antiguo, pero he encontrado una manera de hacerlo .Desde Google búsqueda no era lo suficientemente útil, aquí está (tomado de documentos de UIView)
observar cambios Ver Relacionada
- didAddSubview:
- willRemoveSubview:
- willMoveToSuperview:
- didMoveToSuperview
- willMoveToWindow:
- didMoveToWindow
esto funciona (probado en iOS8):
-(void) didMoveToWindow {
[super didMoveToWindow]; // (does nothing by default)
if (self.window == nil) {
// YOUR CODE FOR WHEN UIVIEW IS REMOVED
}
}
La implementación predeterminada de este método hacer es nada. Las subclases pueden anularlo para realizar acciones adicionales cada vez que cambia la ventana.
La propiedad ventana puede ser nulo ... Esto ocurre cuando el receptor acaba de ser retirado de su supervista o cuando el receptor acaba de ser añadido a un supervista que no está conectado a una ventana.
- (void) willMoveToSuperview: (UIView *) newSuperview{
if(newSuperview == nil){
// UIView was removed from superview
} else {
// UIView was added to superview
}
}
- 1. ¿Cómo se notifica de las actualizaciones de su repositorio?
- 2. ¿Cómo puedo recibir notificaciones cuando se visualice UIView?
- 3. Cómo recibir una notificación cuando se notifica una notificación
- 4. UIView backgroundColor desaparece cuando se selecciona UITableViewCell
- 5. Python genera un subproceso secundario, se separa y sale
- 6. ¿Cómo obtener UIViewController de una supervista de UIView en iPhone SDK?
- 7. ¿Cómo se detecta cuando se cambia un archivo en iCloud?
- 8. ¿Qué UIView se devuelve al usar -viewWithTag: cuando varias vistas tienen el mismo .tag?
- 9. Cómo mensaje supervista en Objective C
- 10. ¿Qué método de UIView se llama cuando se crea una instancia de un NIB?
- 11. ¿Qué sucede cuando se agrega un UIView a otro UIView dos veces en IOS?
- 12. ListView cambio de datos del adaptador sin ListView se notifica
- 13. Cómo detectar "Touch Down" en la supervista de UIScrollView?
- 14. ¿Cómo se conecta AutoWire por su nombre cuando se encuentra más de un bean coincidente?
- 15. ¿Cuándo se separa el ui de los comandos?
- 16. ¿Se puede copiar UIView?
- 17. Cómo tener un GridView que se adapta a su altura cuando se agregan elementos
- 18. Observación de cambios en la ventana de UIView y en las propiedades de la supervista
- 19. setFrame en UIView la animación no se mueve, solo se coloca en su lugar
- 20. ¿Comprueba si se toca UIView?
- 21. haga que UIView en UIScrollView se adhiera a la parte superior cuando se desplazó hacia arriba
- 22. ¿Cómo se crea un fondo semitransparente para una UIView?
- 23. Fix div cuando se desplaza de su navegador para que
- 24. ¿Cómo hacer que una subvista cambie el tamaño automáticamente con su supervista?
- 25. ¿Cómo detectar cuando un UIView ha cambiado de tamaño?
- 26. ¿Cómo se separa el sistema de sesión de codeigniter con PHP integrado en $ _SESSION?
- 27. Al vincular a un cuadro combinado de SelectedItem, el cambio solo se notifica en el foco perdido. ¿Cómo notificar cuando se cambia la selección?
- 28. ¿Cómo se optimiza su Javascript?
- 29. ¿Cómo se implementa Command Query Separation (CQS) cuando se utiliza un ORM?
- 30. ¿Cómo eliminar un artículo que se aleja de su lista?
Usted sabe cuando se retira una vista, porque lo haces de código de todos modos? Simplemente conecte allí su código, o una función de ayuda. – Eiko