viewDidLoad é o que você precisa fazer uma vez. O viewWillAppear é chamado toda vez que a exibição é exibida. Você deve fazer coisas que precisa fazer apenas uma vez no viewDidLoad - como definir os textos do UILabel. No entanto, convém modificar uma parte específica da visualização toda vez que o usuário a visualizar, por exemplo, o aplicativo iPod rolar a letra de volta ao topo toda vez que você acessar a visualização "Em execução".
No entanto, quando você está carregando coisas de um servidor, também precisa pensar em latência. Se você agrupar toda a sua comunicação de rede em viewDidLoad ou viewWillAppear, elas serão executadas antes que o usuário veja a visualização - possivelmente resultando em um curto congelamento do seu aplicativo. Pode ser uma boa ideia primeiro mostrar ao usuário uma visão não preenchida com algum tipo de indicador de atividade. Quando você terminar sua rede, o que pode levar um ou dois segundos (ou até falhar - quem sabe?), Você pode preencher a exibição com seus dados. Bons exemplos de como isso pode ser feito podem ser vistos em vários clientes do twitter. Por exemplo, quando você visualiza a página de detalhes do autor no Twitterrific, a exibição diz apenas "Carregando ..." até que as consultas de rede sejam concluídas.
Inicialmente usado apenas ViewDidLoad com tableView. Nos testes com perda de Wifi, ao definir o dispositivo no modo avião, percebemos que a tabela não era atualizada com o retorno de Wifi. De fato, parece não haver maneira de atualizar o tableView no dispositivo, mesmo pressionando o botão home com o modo de plano de fundo definido como YES no -Info.plist.
Minha solução:
fonte
É importante observar que o uso do viewDidLoad para posicionamento é um pouco arriscado e deve ser evitado, pois os limites não estão definidos. isso pode causar resultados inesperados (tive vários problemas ...)
Este post descreve muito bem os diferentes métodos e o que acontece em cada um deles.
atualmente para inicialização e posicionamento únicos, estou pensando em usar o viewDidAppear com um sinalizador, se alguém tiver alguma outra recomendação, entre em contato.
fonte
Depende, você precisa que os dados sejam carregados toda vez que você abre a exibição? ou apenas uma vez ?
viewDidLoad:
Qualquer que seja o processamento que você tenha, precisa ser feito uma vez.viewWilLAppear:
Qualquer processamento que precise ser alterado sempre que a página for carregada.Rótulos, ícones, títulos de botão ou a maioria dos dataInputedByDeveloper geralmente não são alterados. Nomes, fotos, links, status dos botões, listas (matrizes de entrada para seus tableViews ou collectionView) ou a maioria dos dadosInputedByUser geralmente são alterados.
fonte
viewWillAppear
você pode consultar e verificar os últimos tweets.viewDidAppear
é tarde demais para isso #