Sobes.tech
Middle

O que acontece com o UIViewController ao minimizar a aplicação?

sobes.tech IA

Resposta da IA

Ao minimizar a aplicação, o UIViewController atualmente exibido passa pelas seguintes fases do ciclo de vida:

  1. viewWillDisappear: O método é chamado antes de a vista do controlador deixar de ser visível. Aqui, pode guardar o estado da interface de utilizador ou cancelar operações.
  2. viewDidDisappear: O método é chamado após a vista do controlador estar completamente oculta.
  3. applicationWillResignActive: É chamado no AppDelegate antes de a aplicação passar de ativo para inativo (por exemplo, ao minimizar ou receber uma chamada).
  4. applicationDidEnterBackground: É chamado no AppDelegate após a aplicação entrar em segundo plano. Neste estado, a aplicação tem um tempo limitado para executar tarefas e pode ser suspensa ou terminada pelo sistema. O UIViewController permanece na memória, mas a sua vista não é exibida.

Se a aplicação permanecer em segundo plano e não for encerrada pelo sistema, ao retornar ao estado ativo, o UIViewController passa pelas fases inversas:

  1. applicationWillEnterForeground: É chamado no AppDelegate antes de a aplicação voltar do fundo para o ativo.
  2. applicationDidBecomeActive: É chamado no AppDelegate após a aplicação voltar a estar ativa.
  3. viewWillAppear: É chamado antes de a vista do controlador se tornar visível. Aqui, pode atualizar a UI.
  4. viewDidAppear: É chamado após a vista do controlador se tornar visível.

É importante notar que o objeto UIViewController não é removido da memória ao minimizar, a menos que o sistema o descarte explicitamente devido à falta de recursos (o que acontece raramente e depende de muitos fatores). A vista (view) do controlador também pode ser descarregada da memória (viewWillUnload, viewDidUnload - métodos removidos no iOS 6) se não for necessária naquele momento e o sistema precisar de memória. Nesse caso, ao aceder novamente a view, ela será recriada.