IPhone - Que métodos View Controller para usar

votos
3

Eu estou tentando descobrir o que a lógica deve ir para os diferentes métodos UIViewController como viewDidLoad, viewDidAppear, viewWillAppear, ...

A estrutura do meu aplicativo é que eu tenho um controlador de vista raiz que realmente não tem uma visão própria, em vez disso, tem um controlador de exibição guia e carrega outros controladores de vista nele. Mas, no futuro, ele pode ter que carregar outros controladores de vista em vez do controlador de barra de guia de acordo com a lógica do aplicativo.

A minha pergunta principal é: o que é que as pessoas geralmente colocados na viewDidLoad, .... métodos.

Atualmente eu:

viewDidLoad - Configuração do controlador de barra de guia e defina sua vista a própria visão do controlador de visualização

viewDidAppear - verificar se o usuário tem armazenado o login informações se não - presente com login em caso afirmativo, o login e obter dados de aplicativos para o primeiro separador

Eu estou tentando descobrir agora se minha lógica para a criação de meu guia barra de controlador deve entrar em loadView em vez de viewDidLoad.

Qualquer ajuda seria ótimo. Pequenos exemplos encontrados na web são grandes, mas eles não entrar em detalhes sobre como os aplicativos maiores deve ser estruturado.

Publicado 27/08/2009 em 04:20
fonte usuário
Em outras línguas...                            


2 respostas

votos
3

Você não deve implementar ambos -viewDidLoade -loadView; eles são para diferentes fins. Se você carregar um NIB, você deve implementar -viewDidLoada desempenhar quaisquer funções que precisam ser feitas depois de carregar o NIB. Fiação até o tabbar é apropriado lá se você ainda não tiver feito isso no NIB.

-loadView deve ser implementado se você não usar um NIB, e deve construir a vista.

-viewWillAppearé chamado imediatamente antes de vir na tela. Este é um bom lugar para configurar observações de notificação, atualizar seus dados com base em classes de modelo que mudaram desde seu último na tela, e de outra forma obter o seu agir em conjunto antes que o usuário vê. Você não deve executar qualquer animações aqui. Você não está na tela; você não pode animar. Eu vejo um monte de falhas de animação devido a este erro. É o tipo de trabalhos, mas parece estranho.

-viewDidAppearé chamado depois de chegar na tela. Este é o lugar onde você faz as animações de entrada (de correr um modal, por exemplo, não que você deve fazer isso muitas vezes, mas eu estava apenas olhando para algum código que fez).

-viewWillDisappearé chamado direito antes de ir fora da tela. Este é o lugar onde você pode fazer as animações que deixam (incluindo células Tableview desmarcando e similares).

-viewDidDisapparé chamado depois que você está fora da tela (e as animações ter terminado). Derrubar todas as observações aqui, liberar memória se possível, ir dormir o melhor que puder.

Eu toco sobre como configurar e derrubar observações aqui. I sobre isto em mais profundidade na Visualização de controladores e notificações .

Respondeu 27/08/2009 em 04:44
fonte usuário

votos
0

viewDidLoadserá chamada uma vez por período de vida de cada UIViewController'vista s. Você colocar coisas lá dentro que precisa ser configurado e funcionando antes que o usuário começa a interagir com a vista.

viewDidAppearé chamado sempre que a visão apareceu para o usuário. Ele poderia ser chamado mais de uma vez. Um exemplo seria a tela raiz de um aplicativo usando um UINavigationControllerpara empurrar e pop uma hierarquia de pontos de vista. Colocar coisas lá dentro que você quer fazer o tempo todo. Por exemplo, você pode querer esconder o UINavigationBarda tela de raiz, mas mostrá-lo para todos os ecrãs, de modo que você faria o esconderijo do bar aqui.

Portanto, você iria colocar a sua lógica para a criação de seu UITabBarControllerem viewDidLoad, uma vez que deve ser feito apenas uma vez.

Quanto à sua aplicação, há uma razão por que você não apenas fazer a UITabViewControllerser o controlador carregado pelo seu delegado app? Parece que você tem um nível de engano em seu aplicativo que você pode ou não pode precisar. É provavelmente melhor para simplificá-lo agora, e refatorar mais tarde, se você precisa de algo mais complexo.

Respondeu 27/08/2009 em 04:31
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more