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;
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta