2011-09-30 18 views
7

En UIViewController's documentation, Apple sugiere llamar al súper en algún momento de la puesta en práctica de viewWillAppear, viewDidAppear, viewWillDisappear, viewDidDisappear, etc ... Por ejemplo, la discusión sobre viewDidDisappear es:¿Cuándo llama al método super en viewWillAppear, viewDidDisappear, etc ...?

Puede anular este método para realizar tareas adicionales asociadas con descartar u ocultar la vista. Si anula este método, debe llamar al super en algún momento de su implementación.

Mi pregunta es ¿importa cuando se llama al método super y, si es así, ¿cuál es el momento correcto para llamarlo? ¿Debería llamarse super como la primera línea del método, la última línea, o en algún lugar en el medio dependiendo de sus necesidades particulares?

Respuesta

7

En viewDidAppear primero llame al super para que sus llamadas se anulen.

En viewWillDisappear parece ser un lanzamiento, lo he investigado extensamente y no he podido encontrar una respuesta definitiva y parece ser 50/50. He decidido llamar al super último en mi código de la misma manera en que llamamos al super último en dealloc.

+1

¿Cómo se llegó a estas reglas? – JoJo

+0

En viewDidAppear, parece obvio que el amanecer de la subclase debería estar en la parte superior de la superclase, así que primero se llama super. En cuanto a viewWillDisappear, no he visto una buena razón para un lado o para el otro, así que fui con mi instinto, hasta que se demuestre lo contrario. :-) Si tiene una vista o ha visto una buena explicación, ¡por favor publique! – zaph

1

En general, los llamaré primero en mi implementación. En la mayoría de los casos, no debería importar sin embargo.

Cuestiones relacionadas