“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 *'