Não é possível ocultar a barra de status no iOS7

Acabei de atualizar meu iPhone 5 iOS 7 para quatro versões beta. Agora, quando eu executo meu aplicativo no Xcode 5 neste iPhone, a barra de status não é ocultada, mesmo que deva.

Não está funcionando:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade]; 

Não está funcionando:

 [UIApplication sharedApplication].statusBarHidden = YES; 

Não é possível fazer login nos fóruns de desenvolvedores da Apple

em seus aplicativos plist arquivo adicionar uma linha chamá-lo “Exibir aparência de barra de status baseado no controlador” e defini-lo para não

Note que isso simplesmente não funciona, se você estiver usando o UIImagePickerController no aplicativo.

de http://www.openfl.org/developer/forums/general-discussion/iphone-5ios-7-cant-hide-status-bar/ , a solução de mgiroux

Um exemplo de adição do View Base Controller às configurações de informações no Xcode

Adicione o método no seu controlador de visualização.

 - (BOOL)prefersStatusBarHidden { return YES; } 

No Plist, adicione as seguintes propriedades.

-> Status bar is initially hidden = YES

-> View controller-based status bar appearance = NÃO

Adicione ambos – agora a barra de status desaparecerá.

Para ocultar a barra de status em um modo de exibição único, você deve usar:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];

No começo, isso não funcionou para mim e, em seguida, uma serra na documentação desse método que diz: // Setting statusBarHidden não faz nada se seu aplicativo estiver usando o sistema de barra de status baseado em UIViewController padrão.

Isso deve ser feito no arquivo plist, adicionando a View controller-based status bar appearance chave definida como NO . E então funcionou.

Para ocultar a barra de status no iOS7, você precisa de duas linhas de código

  1. (UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions : (UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions write

     [application setStatusBarHidden:YES]; 
  2. em info.plist adicionar isto

     View-Controller Based Status Bar Appearance = NO 

Para usar o método UIApplication legado para ocultar / mostrar a barra de status, seu aplicativo deve definir um valor de plist para o iOS 7:

View-Controller Based Status Bar Appearance = NO

Este valor é definido como YES por padrão. Se você alterá-lo para NO, poderá usar os methods herdados. Se você deixar definido como YES, ainda será possível ocultar a barra de status, mas cabe a cada subclass do controlador de visualizações em seu aplicativo replace: prefersStatusBarHidden para retornar YES.

Sempre que seu aplicativo precisar da aparência da barra de status ou da visibilidade para alterar, e a aparência da barra de status com base no controlador de visualização estiver definida como SIM, o controlador de exibição mais externo precisará chamar:

setNeedsStatusBarAppearanceUpdateAnimation

Há tantas combinações sugeridas para esse problema, mas o problema é que o iOS 6 e o ​​7 usam methods diferentes para ocultar a barra de status. Nunca consegui definir as configurações do plist para ativar o estilo do iOS6 no iOS 7, mas se você estiver criando o aplicativo para suportar o iOS 6+, será necessário usar três methods de uma só vez para garantir que um determinado controlador de visualização oculte o status Barra:

 // for ios 7 - (BOOL)prefersStatusBarHidden{ return YES; } // for ios 6 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[UIApplication sharedApplication] setStatusBarHidden:YES]; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; // explicitly set the bar to show or it will remain hidden for other view controllers [[UIApplication sharedApplication] setStatusBarHidden:NO]; } 

Isso deve funcionar independentemente de suas configurações plist.

Eu tive que fazer as duas alterações abaixo para esconder a barra de status:

Adicione este código ao controlador de visualização onde você deseja ocultar a barra de status:

 - (BOOL)prefersStatusBarHidden { return YES; } 

Adicione isto ao seu arquivo .plist (vá para ‘info’ nas configurações do aplicativo)

 View controller-based status bar appearance --- NO 

Então você pode chamar esta linha para esconder a barra de status:

 [[UIApplication sharedApplication] setStatusBarHidden:YES]; 

Basta adicionar essas duas linhas no arquivo info.plist. Ele fará a correção para iOS7 e versão mais antiga.

  • Barra de status está inicialmente oculta = YES
  • Exibir a aparência da barra de status baseada no controlador = NO

Navegue até o projeto e selecione Destinos -> Geral e a checkbox de seleção “Estilo da barra de status … Ocultar durante o lançamento do aplicativo” será marcada. Isso vai funcionar.

Tente este método simples:

 - (void)viewWillAppear:(BOOL)animated { [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; } - (void)viewWillDisappear:(BOOL)animated { [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; } 

A única coisa que funcionou para mim é adicionar o seguinte em sua lista

 UIStatusBarHidden  UIViewControllerBasedStatusBarAppearance  

O método mais fácil que encontrei para ocultar a barra de status em todo o aplicativo é criar uma category no UIViewController e replace prefersStatusBarHidden . Dessa forma, você não precisa escrever esse método em todos os controladores de visualização.

UIViewController + HideStatusBar.h

 #import  @interface UIViewController (HideStatusBar) @end 

UIViewController + HideStatusBar.m

 #import "UIViewController+HideStatusBar.h" @implementation UIViewController (HideStatusBar) //Pragma Marks suppress compiler warning in LLVM. //Technically, you shouldn't override methods by using a category, //but I feel that in this case it won't hurt so long as you truly //want every view controller to hide the status bar. //Other opinions on this are definitely welcome #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation" - (BOOL)prefersStatusBarHidden { return YES; } #pragma clang diagnostic pop @end 

-(BOOL)prefersStatusBarHidden { return YES; }

  1. Em plist add —-

    Exibir a aparência da barra de status baseada no controlador — NÃO

  2. Em cada viewController escrever

     - (void) viewDidLayoutSubviews { CGRect viewBounds = self.view.bounds; CGFloat topBarOffset = 20.0; viewBounds.origin.y = -topBarOffset; self.view.bounds = viewBounds; [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];//for status bar style } 

Para problemas na barra de status no iOS 7, mas o destino deve ser 5.1 e superior para o aplicativo

Etapas para ocultar a barra de status no iOS 7:

1. Vá para o seu arquivo info.plist da aplicação.

2.And Set, Exibir a aparência da barra de status baseada no controlador: Boolean NO

Espero que eu tenha resolvido o problema da barra de status …..

Para o iOS 7, em uma única visualização, use no método viewWillappear:

 [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO]; 

Para exibir a barra de status, use:

 [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO]; 

In Info Plist file Adicione uma linha para a seguinte propriedade

Nome da propriedade: visualize a aparência da barra de status baseada no controlador

Valor: NÃO

Muitas das respostas neste tópico funcionam, mas é do meu conhecimento se você está tentando fazer alguma coisa dinâmica que eventualmente precise chamar:

 [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)]; 

Tente adicionar o seguinte método ao controlador de visualização raiz do seu aplicativo:

 - (BOOL)prefersStatusBarHidden { return YES; } 

Eu tentei todas essas opções postadas aqui no meu projeto e elas não funcionariam. Eu pensei que poderia ser com o fato de eu ter atualizado meu Xcode e, em seguida, o aplicativo para o iOS 7 e algumas configurações ficaram confusas em algum lugar. Eu decidi criar um projeto completamente novo para ele e depois de simplesmente definir: ” Status bar is initially hidden = YES ” e ” View controller-based status bar appearance = NO “, como afirmam muitos outros, funcionou corretamente (ou seja, sem barra de status ).

Então, meu conselho, se você está trabalhando em um projeto que foi atualizado para o iOS 7 a partir de uma versão antiga e tentou todas as outras opções, é construir um novo projeto.

Você pode verificar este código , pod UIViewController + ODStatusBar

Para o Swift 2.0+ IOS 9

 override func prefersStatusBarHidden() -> Bool { return true } 

Para ocultar a barra de status para viewController específico

 - (BOOL)prefersStatusBarHidden { return YES; } 

Para definir a barra de status Oculto para o aplicativo:

  • set View controller-based status bar appearance para NO em plpl e em application: didFinishLaunchingWithOptions: set: [application setStatusBarHidden:YES];

    Nota: setStatusBarHidden: preterido

OU

  • em Configurações do projeto -> Guia Geral -> Informações de implantação

    Marque a checkbox Hide Status bar .

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

Não tenho certeza porque você “não pode acessar os fóruns de desenvolvedores da Apple”, mas (sem violar o NDA) você também pode ocultar sua barra de status através do Xcode. É uma configuração geral no seu destino de aplicativo. insira a descrição da imagem aqui