2009-07-17 14 views
9

Apple dice:¿Cómo eliminar correctamente FromSuperview?

removeFromSuperview desvincula el receptor de su supervista y su ventana , y lo elimina de la cadena respondedor.

  • (void) removeFromSuperview

Nunca invocar este método, mientras que mostrar.

Por lo tanto, cuando quiero deshacerme de una vista, estaba acostumbrado a iniciarla desde su punto de vista. ¿Por qué nunca debería invocar eso mientras está visible? ¿Debo configurarlo en hidden = YES antes de hacer eso?

Respuesta

17

La especificación especifica "al mostrar" no "mientras está en pantalla". Por lo tanto, nunca debe llamar al removeFromSuperview en la vista drawRect por ejemplo.

removeFromSuperview publica la vista y puede desasignarla. La vista primaria cuando se intenta mostrar la vista no espera que se desasigne y cause un acceso dañado.

Cuestiones relacionadas