A demanda para o produto proposto, pode ser necessário usar cores diferentes em relação barra de status diferente, é necessário mudar a cor padrão da barra de status.
Antes iOS9, quando precisamos de mudar a cor da barra de status, você pode ser directamente eliminados dentro AppDelegate, como segue:
**
A:
**
[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleLightContent];
E desde arquivo info.plist
barra de status baseado em controlador de vista aparência para NO
No entanto, o ios9 descartado:
é geralmente adicionado o seguinte código dentro do seu RootViewController fornecida White, como segue:
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
Se você ainda não pode mudar para ver se há Ver aparência barra de status baseada em controlador esta propriedade info.plist seu arquivo, se o que havia para ver se sim, sim, então você deve ser capaz de ter sucesso, o diagrama efeito é mostrado abaixo:
**
dois:
**
A fonte barra de status é preto: UIStatusBarStyleDefault
barra de status da fonte é branca: UIStatusBarStyleLightContent
APP status de página inicial cor bar configuração
acrescentou estilo barra de status no info.plist, alterando o valor de estilo, você pode mudar a cor, o padrão é o estilo Grey
1. Em info.plist, a aparência da barra de status conjunto baseado em controlador Vista para NO, branco, YES, preta
, se baseada em controlador de vista barra de status aparência para YES.
O [UIApplication sharedApplication] .statusBarStyle inválido.
Resolva VC indivíduo de uma maneira diferente a fonte barra de status de cor
Em segundo lugar, o delegado app:
[UIApplication sharedApplication] .statusBarStyle = UIStatusBarStyleLightContent;
terceiro lugar, a barra de status na cor da fonte indivíduo não é a mesma em vc
- (void) viewWillAppear: (BOOL ) animado
{
[sharedApplication o UIApplication] .statusBarStyle = UIStatusBarStyleDefault;
}
- (vazio) em viewWillDisappear: (BOOL) animadas
{
[Super em viewWillDisappear: animadas];
[sharedApplication o UIApplication] .statusBarStyle = UIStatusBarStyleLightContent;
}
Atrav do modo seguinte:
. 1, método reescrever preferredStatusBarStyle em vc vc.
- (UIStatusBarStyle) preferredStatusBarStyle
{
retornar UIStatusBarStyleDefault;
}
2, em viewDidLoad chamada: [self setNeedsStatusBarAppearanceUpdate];
No entanto, quando vc no nav, o método acima é inútil, método preferredStatusBarStyle de vc não tem que ser chamado.
A razão é, [auto setNeedsStatusBarAppearanceUpdate] é emitido,
só irá chamar o método preferredStatusBarStyle de controlador de navegação,
método preferredStatusBarStyley é chamado com o vc não teria.
Há duas soluções:
Método um:
Set barStyle propriedade barra de navegação irá afetar a barra de status de fontes e cores de fundo. Como se segue.
// barra de status da fonte é branca
cor de navegação // bar fundo é preto.
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
// barra de status da fonte é preta
// navegação cor de fundo bar é branco, a cor da barra de status fundo é branco.
//self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
Método dois:
personalizado barra de navegação uma subclasse desta subclasse substituído em método preferredStatusBarStyle:
MyNav NAV * = [[MyNav o alloc] initWithRootViewController: VC];
self.window.rootViewController = NAV;
@implementation MyNav
- (UIStatusBarStyle) preferredStatusBarStyle
{
UIViewController * topVC = self.topViewController;
retorno [topVC preferredStatusBarStyle];
}