Implementación correcta de loadView
Los documentos de Apple no dicen cuál es la implementación correcta para loadView.
He descubierto que si implementa loadView de esta manera:
- (void)loadView
{
self.view = [[UIView alloc] init];
}
... entonces obtienes un comportamiento diferente que si no lo implementas en absoluto. En particular, en un proyecto de 20 líneas, descubrí que se llama a viewWillAppear con un marco de tamaño cero para self.view, a menos que use la versión predeterminada de Apple de loadView.
Mirando en Google, hay muchos "tutoriales" que proporcionan implementaciones de loadView obviamente incorrectas, p. Ej. ajuste forzado el tamaño a (320,480) porque el autor del tutorial "descubrió que funciona si hago esto".
Me gustaría saber cuál debería ser la implementación correcta.
NB: en mi ejemplo anterior, lo agrego a la jerarquía de vistas dentro de AppDelegate de esta manera:
[self.window addSubview:(UIViewController*).view];
Creo que en presencia de un UINavigationController o UITabBarController, Apple hace algo de magia adicional que, como efecto secundario, hace que una implementación de loadView de una línea funcione correctamente. Pero quiero escribirlo correctamente, para quesiempr ¡trabajos
NB: He intentado configurar la máscara de tamaño automático en la vista raíz, pero no cambia lo que sucede:
- (void)loadView
{
self.view = [[UIView alloc] init];
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}