“Espera-se que a janela do aplicativo tenha uma aparência condicional do controlador de visualização raiz”

Estou escrevendo um aplicativo para iPhone usando o Xcode 4.5 e o iOS6. Eu também estou criando um novoUIWindow para poder gerenciar a área da barra de status (para exibir mensagens lá, etc.) Estou usando storyboards e meuappDelegate método é assim:

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

A mensagemnão aparece no console quando eu colocá-lo no método chamadoviewDidAppear:

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

O mesmo método, colocar noviewDidLoad dá um aviso no console:

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

Isso é porque eu criei um novoUIWindow? Por que a diferença entre esses dois métodos é tão grande?

E, mais importante, como posso me livrar desse avisoenquanto colocando o código noviewDidLoad método?

EDITAR:

Eu encontrei o mesmo problemaAqui, mas não é o jeito que eu gostaria de resolver (na verdade é como eu estou resolvendo issoagora mesmo)

Eu tentei definir meu ViewController atual como o controlador de visão raiz da minha janela fazendo isso:

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

Mas continuo recebendo um aviso que diz:

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

questionAnswers(2)

yourAnswerToTheQuestion