O ciclo de vida de uma UIViewController em Swift segue um padrão predefinido, que consiste em uma série de métodos chamados em momentos específicos durante a vida útil da view controller. Aqui está um resumo do ciclo de vida típico de uma UIViewController em Swift:
viewDidLoad: Este método é chamado depois que a hierarquia de views foi carregada na memória. É um bom lugar para executar inicializações adicionais que dependem da existência de views, como configurar propriedades ou adicionar gestos. (EX: mandar para API processar as informações). OBS: é chamado apenas 1 vez.viewWillAppear(_:): Este método é chamado antes de a view da view controller ser adicionada à hierarquia de views. É um bom lugar para realizar tarefas que precisam ser feitas toda vez que a view está prestes a aparecer, como atualizações de UI ou iniciar animações. É chamado antes da tela aparecer. OBS: é chamado toda vez que ocorre um present em uma view, antes da tela aparecer.viewDidAppear(_:): Este método é chamado depois de a view da view controller ter sido adicionada à hierarquia de views. É um bom lugar para realizar tarefas que devem ocorrer assim que a view aparecer, como carregar dados de um servidor. É chamado depois que a tela está pronta (apareceu). Ideal para Inicializar animações (loading). OBS: É chamado toda vez, assim como willAppear.viewWillDisappear(_:): Este método é chamado antes de a view da view controller ser removida da hierarquia de views. É um bom lugar para realizar tarefas que devem ocorrer antes da view desaparecer, como salvar dados ou cancelar animações.viewDidDisappear(_:): Este método é chamado depois de a view da view controller ter sido removida da hierarquia de views. É um bom lugar para realizar tarefas que devem ocorrer depois que a view desapareceu, como liberar recursos ou parar animações.
Exemplo
class MinhaViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Inicialização e configuração inicial
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// Configurações antes da view aparecer
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// Execução de ações após a view aparecer
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// Ações antes da view desaparecer
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
// Ações após a view desaparecer
}
// Outros métodos podem ser implementados conforme necessário
}