Pergunta

aplicativo baseado em tabBarController My tem várias abas. Cada um tem uma classe personalizada viewController, a única diferença é a forma como a instância é inicializada. Existe uma maneira de fazer o Interface Builder enviar as guias diferentes parâmetros costume o init?

Atualmente eu estou fazendo a inicialização em viewWillAppear, mas para um monte de razões, faria sentido fazê-lo em IB, em vez de no código.

Todas as sugestões?

graças, Kelso

Foi útil?

Solução

Interface Builder cria um arquivo de objetos que é unarchived quando você programa é executado. Você não pode realmente dizer IB para chamar métodos particulares.

Se você precisa para inicializar antes viewWillAppear: é chamado, você pode fazê-lo em awakeFromNib, que está garantido para ser chamado após todos os objetos tenham sido carregados e todas as tomadas foram conectados aos seus objectivos.

Se você quiser fazer a inicialização ainda mais cedo, você pode fazê-lo, substituindo initWithCoder: (veja o protocolo NSCoding para documentação). Eu não sei se ele está documentado em qualquer lugar, mas que é Designada inicializado para objetos que estão sendo decodificados a partir de um arquivo.

Em todos os itens acima, você não será capaz de receber parâmetros, mas no código que você deve ser capaz de acessar o que você precisa com algum uso criterioso de variáveis ??globais. Você também pode usar [[UIApplication sharedApplication] delegate] para obter acesso ao seu objeto de delegação aplicação.

Outras dicas

Eu não acho que há alguma maneira de mudar o que métodos são chamados pelo tempo de execução IB quando a sua ponta está carregado. Se você descreveu o que você estava tentando realizar (ou seja, por que fazer a instalação em viewDidAppear não funciona para você), você pode obter uma sugestão de uma maneira melhor de lidar com a sua inicialização.

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