viewDidLoad es lo que tienes que hacer una vez. viewWillAppear se llama cada vez que aparece la vista. Debería hacer cosas que solo tiene que hacer una vez en viewDidLoad, como configurar sus textos UILabel. Sin embargo, es posible que desee modificar una parte específica de la vista cada vez que el usuario la vea, p. la aplicación iPod desplaza la letra hacia la parte superior cada vez que va a la vista "Reproducción en curso".
Sin embargo, cuando carga cosas desde un servidor, también debe pensar en la latencia. Si empaqueta todas sus comunicaciones de red en viewDidLoad o viewWillAppear, se ejecutarán antes de que el usuario vea la vista, lo que podría resultar en una congelación corta de su aplicación. Puede ser una buena idea mostrar primero al usuario una vista despoblada con un indicador de actividad de algún tipo. Cuando haya terminado con su red, que puede tomar uno o dos segundos (o incluso puede fallar, ¿quién sabe?), Puede completar la vista con sus datos. Buenos ejemplos de cómo se puede hacer esto se pueden ver en varios clientes de Twitter. Por ejemplo, cuando ve la página de detalles del autor en Twitterrific, la vista solo dice "Cargando ..." hasta que las consultas de la red se hayan completado.
Por lo tanto, con respecto a viewWillAppear se puede llamar de manera repetitiva. ¿Se desencadenaría ese método si, por ejemplo, la vista viewcontrollers se volviera visible después de haber sido ocultada (me refiero a ocluded aquí, no el método oculto en UIView). ¿En qué escenario se vería invocar a WillAppear sin ir precedido de una llamada a viewDidLoad? – dugla
viewDidLoad SÓLO se llama cuando se construye la vista, por ejemplo después de un controlador de vista llamada initFromNibNamed cuando se accede a la vista. viewWillAppear se invoca en cualquier momento que su controlador de vista no estaba a la vista, pero aparece en pantalla, de modo que cuando se pulsa su controlador de vista, se llama a viewWillAppear. Si inserta otra subvista desde allí y el usuario regresa, se llama de nuevo a viewWillAppear. –
Gracias Kendall. Yah, algunos NSLogs estratégicamente ubicados me han ordenado. viewWillAppear/viewWillDissappear disparar en viewcontroller push/pops. – dugla