Pergunta

Muito Eu li fala sobre as vantagens de definir a sua UI em IB. E como quando a ponta está "acordado" todos os objetos em que "ganham vida".

Eu estou experimentando com a colocação de cerca de 10 objetos UIView em uma ponta que é propriedade de uma ViewController. Os objetos UIView são do tipo MyView e são ligados de volta para suas respectivas propriedades na ViewController. MyView é uma subclasse de UIView com algumas propriedades adicionais, como um UIImage * image & NSNumber * valor.

A ponta claramente cargas quanto eu posso ver alguns outros elementos UIImageView que também estão na ponta. Mas quando eu tentar definir uma propriedade em uma das 10 MyView objetos eu sou incapaz de. E no depurador minhas propriedades para esses objetos são todos 0x0 ainda.

Eu também estava sob a impressão de que o método initWithCoder na minha classe MyView iria disparar como cada um desses 10 objetos acordou do sono que eu pudesse definir algumas propriedades em tempo de execução?!?

Alguém sabe o que está acontecendo ... Estou feliz de abandonar IB para isso, mas pensei que eu iria dar-lhe uma tentativa ...

Foi útil?

Solução

viewDidLoad é o primeiro método chamado quando todos os objetos em sua visão foram criados. initWithCoder é chamado antes de qualquer deles são.

viewWillAppear é chamado após viewDidLoad, e chamou antes de qualquer coisa é exibido -. Ele é chamado cada tempo, onde viewDidLoad só é chamado quando seus objetos de exibição são criados

Outras dicas

UIViewControllers carregar seus pontos de vista quando pela primeira vez acessando a propriedade self.view. Tente ver se o método viewDidLoad do seu controlador é chamado.

Além disso, eu lembro de ter lido em algum lugar (poderia ser a Apple documentação) que ter múltiplas visões independentes carregados a partir de um bico não é recomendado, principalmente por causa do uso de memória.

Eu suspeito que pode ser que você tenha atribuído a vista para o proprietário arquivos.

Open IB. Na janela que tem. dono do arquivo primeiro Responser Ver

Botão direito do mouse sobre o objeto "vista". Se ele só tem uma opção "Nova saída de referência", então isso significa que você ainda não ligados a vista para o proprietário arquivos. Basta pegar aquele pequeno o lado deste e arrastá-lo até o proprietário arquivos. Uma vez sobre arquivos proprietário um novo menu deve aparecer e você pode deve ser capaz de selecionar "vista"

Save isso e ver se está trabalhando agora.

Por fim verificar se o "dono do arquivo" foi definido para sua classe, você pode simplesmente selecionar o dono do arquivo e inspecionar este. Em um dos queda baixos que você será capaz de selecionar a classe.

IB é legal. Não desista ... Salva até 70% de você código de configuração (como indicado na WWDC pela Apple) para ficar com ela.

John.

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