“Se espera que las ventanas de aplicación tengan un controlador de vista raíz” apariencia condicional

Estoy escribiendo una aplicación para iPhone usando Xcode 4.5 y iOS6. También estoy creando un nuevoUIWindow para poder administrar el área de la barra de estado (para mostrar mensajes allí, etc.) Estoy usando guiones gráficos y miappDelegate El método se ve así:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    return YES;
}

El mensajeno aparece En la consola cuando lo puse en el método llamado.viewDidAppear:

- (void)viewDidAppear:(BOOL)animated     {

    if (!window) {
        window = [[SGStatusBar alloc] initWithFrame:CGRectZero];
        window.frame = [[UIApplication sharedApplication] statusBarFrame];
        window.alpha = 0.5f;

        [self.view.window makeKeyAndVisible]; // has to be main window of app
        window.hidden = NO;
    }  
}

El mismo método, puesto en elviewDidLoad da una advertencia en la consola:

2012-12-27 11:34:20.838 NewApp[433:c07] Application windows are expected to have a root view controller at the end of application launch

Es esto porque he creado una nuevaUIWindow? ¿Por qué la diferencia entre estos dos métodos es tan grande?

Y, lo más importante, ¿cómo puedo deshacerme de esta advertencia?mientras poniendo el código en elviewDidLoad ¿método?

EDITAR:

Me he encontrado con el mismo problemaaquí, pero no es la forma en que me gustaría resolverlo (en realidad es la forma en que lo estoy resolviendoahora mismo)

He intentado configurar mi ViewController actual como el controlador de vista raíz de mi ventana haciendo esto:

ViewController *vcB = [[UIViewController alloc] init];
window.rootViewController = vcB;

Pero sigo recibiendo una advertencia que dice:

Incompatible pointer types initializing 'ViewController *__strong' with an expression of type 'UIViewController *'

Respuestas a la pregunta(2)

Su respuesta a la pregunta