viewDidLoad es cosas que debes hacer una vez. Se llama a viewWillAppear cada vez que aparece la vista. Debe hacer cosas que solo tiene que hacer una vez en viewDidLoad, como configurar sus textos de UILabel. Sin embargo, es posible que desee modificar una parte específica de la vista cada vez que el usuario puede verla, por ejemplo, la aplicación iPod desplaza la letra hacia arriba cada vez que accede a la vista "Reproducción en curso".
Sin embargo, cuando está cargando cosas desde un servidor, también debe pensar en la latencia. Si empaqueta toda su comunicación de red en viewDidLoad o viewWillAppear, se ejecutarán antes de que el usuario vea la vista, lo que posiblemente genere un breve congelamiento 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. Se pueden ver buenos ejemplos de cómo se puede hacer esto 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 se hayan completado las consultas de red.
Inicialmente solo se usa ViewDidLoad con tableView. Al probar con la pérdida de Wifi, al configurar el dispositivo en modo avión, se dio cuenta de que la tabla no se actualizó con el regreso de Wifi. De hecho, parece que no hay forma de actualizar tableView en el dispositivo incluso presionando el botón de inicio con el modo de fondo establecido en SÍ en -Info.plist.
Mi solución:
fuente
Es importante tener en cuenta que usar viewDidLoad para el posicionamiento es un poco arriesgado y debe evitarse ya que los límites no están establecidos. Esto puede causar resultados inesperados (tuve una variedad de problemas ...)
Esta publicación describe bastante bien los diferentes métodos y lo que sucede en cada uno de ellos.
actualmente para un inicio y posicionamiento únicos Estoy pensando en usar viewDidAppear con una bandera, si alguien tiene alguna otra recomendación, por favor hágamelo saber.
fuente
Depende: ¿Necesita cargar los datos cada vez que abre la vista? o solo una vez ?
viewDidLoad:
Cualquier procesamiento que tenga que debe hacerse una vez.viewWilLAppear:
Cualquier procesamiento que necesite cambiar cada vez que se carga la página.Las etiquetas, los iconos, los títulos de los botones o la mayoría de dataInputedByDeveloper generalmente no cambian. Los nombres, fotos, enlaces, estado de los botones, listas (matrices de entrada para sus tableViews o collectionView) o la mayoría de dataInputedByUser generalmente cambian.
fuente
viewWillAppear
que puedes consultar y consultar los últimos tweets.viewDidAppear
es demasiado tarde para eso