ios9 definir as configurações de cor da fonte barra de status de navegação

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:
Escrever fotos descrito aqui
é 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];
    }
Publicado 83 artigos originais · Louvor obteve 12 · vista 180 000 +

Acho que você gosta

Origin blog.csdn.net/shengdaVolleyball/article/details/54602971
Recomendado
Clasificación