ti-enxame.com

Como a visualização é inicializada quando carregada através de um storyboard?

Quando a visualização é carregada manualmente, o desenvolvedor permanece no controle quando se trata de inicializações, escolhemos qual inicializador chamar, quais variáveis ​​definir etc.

Quando a visualização é carregada a partir do storyboard, segue ... o que acontece com o inicializador? Onde as variáveis ​​devem ser definidas, eu gostaria de estar disponível após o carregamento da visualização?

Por favor, ajude-me a entender a sequência aqui. Como é criada a instância da classe aqui, quem a cria e como podemos intervir e ajudar a configurá-la ao nosso gosto?

59
JAM

Quando uma visualização é carregada de uma ponta ou storyboard, é -initWithCoder: método é chamado. Gostar -initWithFrame:, -initWithCoder: é um inicializador designado para o UIView. Se você deseja fazer uma inicialização personalizada para uma subclasse UIView, verifique se isso acontece nos dois métodos. Uma técnica comum é adicionar um método de inicialização comum chamado pelos dois -initWithFrame: e -initWithCoder:. Veja minha resposta a Visualização personalizada e implementação do método init? para obter uma descrição mais detalhada.

Observe que a documentação para -initWithFrame: explica:

Se você usar o Interface Builder para projetar sua interface, esse método não será chamado quando seus objetos de exibição forem carregados subsequentemente a partir do arquivo nib. Os objetos em um arquivo de ponta são reconstituídos e, em seguida, inicializados usando o método initWithCoder:, que modifica os atributos da visualização para corresponder aos atributos armazenados no arquivo de ponta.

92
Caleb