Qual é a diferença entre viewDidLoade viewDidAppear? Que tipo de inicialização ou código customizado entra nessas funções?
por exemplo, presentModalViewControllerfunciona apenas quando presente viewDidAppeare não ativado viewDidLoad.
Qual é a diferença entre viewDidLoade viewDidAppear? Que tipo de inicialização ou código customizado entra nessas funções?
por exemplo, presentModalViewControllerfunciona apenas quando presente viewDidAppeare não ativado viewDidLoad.
Respostas:
viewDidLoadé chamado exatamente uma vez, quando o controlador de visualização é carregado pela primeira vez na memória. É aqui que você deseja instanciar quaisquer variáveis de instância e construir quaisquer visualizações que vivam por todo o ciclo de vida deste controlador de visualização. No entanto, a vista geralmente ainda não é visível neste ponto.
viewDidAppearé chamado quando a visualização está realmente visível e pode ser chamado várias vezes durante o ciclo de vida de um Controlador de Visualização (por exemplo, quando um Controlador de Visualização Modal é descartado e a visualização se torna visível novamente). É aqui que você deseja executar qualquer ação de layout ou qualquer desenho na IU - por exemplo, apresentar um controlador de visualização modal. No entanto, qualquer coisa que você fizer aqui deve ser repetida. É melhor não reter as coisas aqui, ou você terá vazamentos de memória se não liberá-los quando a vista desaparecer.
Veja: https://developer.apple.com/documentation/uikit/uiviewcontroller
viewDidLoadgeralmente seja chamado apenas uma vez, há uma situação em que pode ser chamado novamente. Especificamente, se você receber um didReceiveMemoryWarning, suas visualizações não visíveis podem ser liberadas (embora os controladores de visualização estejam intactos) e quando você retornar, viewDidLoadpode ser chamado para buscá-las novamente.
didReceiveMemoryWarning. Mas eu concordo que se você usar boas práticas ao escrever o seu viewDidLoad, você ficará bem. Meu único ponto é que o uso descuidado de ivars e gerenciamento manual de memória pode definitivamente resultar em vazamentos viewDidLoad. As pessoas devem ser sensíveis ao didReceiveMemoryWarningcenário e programar de acordo.
viewDidLoadcódigo que vazará didReceiveMemoryWarning. Suspiro.
Simplificando, você gostaria de criar quaisquer controles ou matrizes em viewDidLoad, onde viewDidAppearé onde você gostaria de atualizar esses controles ou matrizes.
viewDidLoadé chamado uma vez quando o controlador é criado e viewDidAppearé chamado sempre que a visualização, bem, DID aparece. Então, digamos que você tenha uma visualização modal que você apresenta, quando essa visualização for descartada, viewDidAppearserá chamada, e viewDidLoadnão será chamada.
viewDidLoadpode ser chamado mais de uma vez . Se a sua visualização enquanto não é exibida (sob uma pilha de outras visualizações) é descarregada por versões mais antigas do iOS em uma situação de pouca memória, então o controlador de visualização recarregará automaticamente a visualização quando precisar ser reapresentada na tela. Em versões posteriores do iOS, você pode optar por ajudar a reduzir o uso de memória fazendo o que o iOS anterior fazia por você: Descarregue visualizações fora da tela quando a didReceiveMemoryWarningmensagem chegar; nesse caso, o viewDidLoadserá chamado novamente.