Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Permanência da View após o POP

Gostaria de saber a relação da View em memória com o POP. O comando "print("Apos pop view") abaixo é executado mesmo depois do comando popViewController. Isso quer dizer q a view sai da memória mas a classe controlller continua em execução até seu fim, para depois sair da memória?

if let navigation = navigationController {
    navigation.popViewController(animated: true)
}

print("Apos pop view")
4 respostas
solução!

Fala aí Eduardo, blz?

Então o fato de você ter feito o popViewController não quer dizer que sua view ou seu controller saiu da memória.

Por exemplo no seu caso após executar esse método que faz o popViewController será chamado mais dois métodos viewWillDisappear e viewDidDisappear. Que são as notificações dos estados da sua tela (muitas vezes comparados com ciclo de vida).

Se você abrisse sua tela e só efetuasse o popViewController todos esses métodos seriam notificados nessa ordem:

viewDidLoad
viewWillAppear
viewDidAppear
- popViewController
viewWillDisappear
viewDidDisappear

Espero ter ajudado.

Perfeito Eduardo! Pensa assim: a linguagem e a API são duas coisas diferentes. A linguagem não conhece nada sobre a API. Então a linguagem não sabe que quando você invoca popViewController você quer na verdade sair do seu método. A linguagem só sabe que você quer sair do seu método se:

  • deu exception/error
  • tem um return explícito
  • acabou o método

Portanto o método vai até o fim

Obrigado Fernando e Guilherme, entendi!

Ótimas explicações!