Pergunta

Tenho lutado um pouco com meu primeiro aplicativo real para iPhone e gostaria de obter alguns conselhos sobre como ele deve ser estruturado.Estou procurando algumas práticas recomendadas em termos de criação de componentes de UI e vinculá-los para criar o fluxo do aplicativo (criar visualizações/controladores programaticamente vs.com Interface Builder, etc...).

Visão geral:
Preciso mostrar uma visualização de "Login" na inicialização do aplicativo.
--Mostra a visualização "Inscrição" se eles clicarem no botão de inscrição.

Uma vez logado...Eu tenho um TabBarController carregando 4 visualizações.Essas 4 visualizações terão que carregar subvisualizações (como master-detail).

Minha pergunta é:
1) Qual a melhor forma de montar essa estrutura de navegação?Criar cada visualização como um .xib com um ViewController correspondente?Como eles são colados?

2) Como devo lidar com a navegação de Login/Cadastro, nenhum TabBar deve ser mostrado no início, mas será necessário após a autenticação do usuário.

Ponto bônus) Existem práticas recomendadas documentadas para esse tipo de coisa?Tenho hackeado alguns códigos viáveis, mas fiquei muito perdido e quero começar de novo, fazendo isso da maneira correta.

Eu sei que isso pode ser um pouco confuso, toda e qualquer ajuda será muito apreciada.

EDITAR:Para a visualização de Login no topo da barra de guias, usei isso, bem simples.

LoginViewController *loginViewController = [[LoginViewController alloc] init];
[loginViewController initWithNibName:@"Login" bundle:nil]; 
[self.tabBarController presentModalViewController:loginViewController animated:YES];
Foi útil?

Solução

Quando você cria um novo aplicativo baseado em barra de guias no Xcode, você já está configurado da maneira que deseja - há um XIB principal que carrega as visualizações para cada guia de arquivos XIB separados. Você tem um xib por guia. Observe que, ao alterar os tipos ou adicionar guias, você precisa especificar o tipo de controlador de exibição adequado no XIB com a barra de guias e no XIB que você usa para criar sua visualização!

Quanto à visualização de login, uma abordagem comum é usar a barra de guias como acima, mas no aplicativo Delegate ApplicationDIdFinishLaunching Método apresenta um controlador de exibição modal que mostra a tela de login. O controlador modal esconde a barra de guias e tudo mais até que eles sejam feitos, então pode ser descartado.

Outras dicas

1) Qual é a melhor maneira de juntar essa estrutura de navegação? Crie cada visualização como um .xib com um ViewController correspondente? Como estes são colados?

Usar UINavigationController e empurre suas visualizações personalizadas para a pilha de navegação, conforme necessário. Confira o exemplo de aplicativo do controlador de navegação via Xcode Novo projeto opção para ter uma ideia de como isso funciona.

2) Como devo lidar com a navegação de login/inscrição, nenhum tabbar deve ser mostrado no início, mas precisará disso após a autenticar o usuário.

Configure uma visualização para login (eu usaria um UITableView com uma seção contendo duas linhas para nome de usuário e senha, mas essa é minha própria preferência). Configure uma segunda visualização separada para campos de inscrição (novamente, eu usaria um UITableView Para isso, para manter o layout limpo e consistente).

Talvez use uma animação de exibição para aparecer a barra de guias após a autenticação bem -sucedida.

Ponto de bônus) Existem práticas recomendadas documentadas para esse tipo de coisa? Eu tenho invadido algum código viável, mas fiquei muito perdido e quero começar de fazer isso da maneira correta.

Você acabará reescrevendo seu projeto várias vezes - o que é uma coisa boa. Confira os aplicativos de amostra da Apple (disponíveis no site do iPhone ADC), pois eles contêm várias maneiras de "práticas recomendadas" de usar várias das várias das UIKit componentes. Quanto a montar um aplicativo maior, mantenha seu design o mais simples possível e reutilize o máximo possível dos componentes da UI da Apple. Você sempre pode personalizar mais tarde.

Na minha opinião, apenas exemplos de programação Cocoa e aplicações muito simples são adequados para um único arquivo nib.Caso contrário, você deverá distribuir seus componentes de interface por várias pontas.Isso significa que cada ponta é menor e, quando carregada na memória, carregará apenas os componentes conforme necessário.Isso melhorará o desempenho do seu aplicativo e poderá ajudar a organizar logicamente o seu programa e facilitar a depuração quando surgirem problemas.

Em meus aplicativos de barra de guias, eu uso MainWindow.xib para conter a janela principal e a barra de guias, mas divido cada guia em uma ponta separada pelos motivos acima.

A Apple oferece as seguintes diretrizes:

Ao criar seus arquivos nib, tente manter as seguintes diretrizes em mente:

Projete seus arquivos nib tendo em mente o carregamento lento.Planeje carregar arquivos nib que contenham apenas os objetos necessários imediatamente.

No arquivo nib principal de um aplicativo Mac OS X, considere armazenar apenas a barra de menus do aplicativo e um objeto delegado opcional do aplicativo no arquivo nib.Evite incluir janelas ou elementos da interface do usuário que não serão usados ​​até que o aplicativo seja iniciado.Em vez disso, coloque esses recursos em arquivos nib separados e carregue-os conforme necessário após o lançamento.

Armazene componentes repetidos da interface do usuário (como janelas de documentos) em arquivos nib separados.

Para uma janela ou menu usado apenas ocasionalmente, armazene-o em um arquivo nib separado.Ao armazená-lo em um arquivo nib separado, você carrega o recurso na memória somente se ele for realmente usado.

Para mais informações você pode visitar:

http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html#//apple_ref/doc/uid/10000051i-CH4

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top