Maneira limpa de forçar a visualização para carregar subvisualizações antecipadamente
Recentemente escrevi um código onde tentei me referir a uma tomada em umUIViewController
Eu acabei de instanciar com[storyboard instantiateViewControllerWithIdentifier]
e modificar a subvisão que a tomada apontou antes de apresentar oViewController
. Não funcionou porque oViewController
A visão não tinha carregado suas subvisões ainda, incluindo a que a minha loja se referia, então a propriedade apenas me deu um ponteiro nulo.
Depois de (com alguma dificuldade) rastrear a causa do meu problema no depurador, pesquisei e aprendi por meio de respostas comoeste, que eu posso fazer com que a visão carregue suas subvisualizações sem ser exibida chamando omyViewController.view
getter. Depois disso, posso acessar minha saída sem problemas.
Porém, é um truque claro, e o Xcode - com razão - não gosta disso, e com raiva protesta com este aviso:
Resultado de acesso à propriedade não utilizado - os getters não devem ser usados para efeitos colaterais
Existe uma maneira alternativa não-hacky de fazer isso que não envolva abusar do.view
getter? Alternativamente, existem padrões canônicos / idiomáticos para este cenário envolvendo algo como adicionar dinamicamente um manipulador a ser chamado assim que as subvisualizações forem carregadas?
Ou é a solução padrão apenas para substituirmyViewController.view
com[myViewController view]
calar o aviso do Xcode e depois morar com o hack?