viewDidLoadse llama exactamente una vez, cuando el controlador de vista se carga por primera vez en la memoria. Aquí es donde desea crear una instancia de las variables de instancia y crear las vistas que vivan durante todo el ciclo de vida de este controlador de vistas. Sin embargo, la vista todavía no es visible en este punto.
viewDidAppearse llama cuando la vista es realmente visible y se puede llamar varias veces durante el ciclo de vida de un controlador de vista (por ejemplo, cuando se descarta un controlador de vista modal y la vista vuelve a ser visible). Aquí es donde desea realizar cualquier acción de diseño o hacer cualquier dibujo en la interfaz de usuario, por ejemplo, presentar un controlador de vista modal. Sin embargo, todo lo que haga aquí debería ser repetible. Es mejor no retener cosas aquí, o de lo contrario obtendrá pérdidas de memoria si no las libera cuando la vista desaparece.
Ver: https://developer.apple.com/documentation/uikit/uiviewcontroller