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