2014-10-02 23 views
6

Ho l'aggiunta di una finestra della console on top della barra di stato:Finestra con UIWindowLevelStatusBar + 1 nasconde la barra di stato su iOS 8

enter image description here

Ciò sta funzionando grande impostando il suo windowLevel-UIWindowLevelStatusBar + 1 fino a iOS 7.x (screenshot).

Su iOS 8 lo stesso codice fa scomparire la barra di stato e sposta in alto le barre di navigazione. Ho provato diversi livelli di finestra senza fortuna.

Uso la libreria su molti progetti e ho notato che la barra di stato viene visualizzata quando viene visualizzata anche una "finestra popup" del livello UIWindowLevelAlert. Quindi una possibile soluzione sarebbe quella di aggiungere una finta finestra lì, ma sarebbe sporca.

+0

Se si imposta il livello su "StatusBar" + 1, dovrebbe coprire la barra di stato. Stai specificando in modo specifico che il livello sia superiore alla barra di stato. – rmaddy

+0

Sì. Questo è quello che intendo fare. La barra di stato è ancora lì, hai un'area in cui puoi ancora "toccare per scorrere verso l'alto" e il layout e le barre di navigazione più importanti vengono posizionati correttamente. Questo tuttavia si è rotto con iOS 8. – Rivera

risposta

6

Provare ad implementare il metodo -prefersStatusBarHidden sul controller di visualizzazione radice della UIWindow. Ha funzionato per me

+0

Bene, ha funzionato grazie! Più che inaspettato dato che l'implementazione predefinita restituisce già "NO". – Rivera

+0

Non funziona per me su iOS9 anche se sia la chiave che la finestra StatusBar + 1 hanno il privilegio rootViewControllersStatusBarHidden sovrascritto per restituire NO – burax

+0

Aa e riprendo quello. Il mio problema era lo sfondo nero sotto la barra di stato. L'aggiunta di una nuova finestra ha cambiato il colore della barra di stato in nero con l'aspetto di scomparire. L'implementazione di 'preferredStatusBarStyle' ha risolto questo problema. – burax