2014-09-30 12 views
5

Mam dość prostą konfigurację w mojej aplikacji na iPhone'a, z kontrolerem nawigacji i kontrolerem widoku. Kontroler widoku ma tytuł, a dla większości moich widoków inne kontrolery widoku działają zgodnie z oczekiwaniami: tytuł jest używany jako etykieta przycisku "wstecz" na pasku nawigacji, a wyświetlany jest nowy widok. Po usunięciu nowego widoku ze stosu wyświetlany jest stary widok z jego tytułem.Nawigacja Zawartość paska zniknie z wyskakującego widoku z preferencjamiStatusBarHidden = TAK

Jednak, gdy tylko kontroler widoku wypychanego zaimplementuje preferencjeStatusBarUmieszczona z wartością zwracaną TAK, tytuł na pasku nawigacji zniknie po tym, jak ten widok zostanie wyrzucony ze stosu - pozostanie pusty i nie wyświetli nawet mojego niestandardowego paska prawostronnego .

Dodatkowo, robienie tego w krajobrazie zamiast portretu nie pokazuje tego zachowania - tytuł jest wyświetlany poprawnie. Jeśli napotkasz ten problem w fotografii portretowej, możesz ponownie ustawić telefon i wrócić do portretu, a tytuł i wszystko inne pojawią się ponownie.

jestem pewien, czy to był tam już w poprzednich wersjach systemu iOS, ale jestem obecnie widząc go z iOS 8.

Odpowiedz

4

Miałem ten sam problem i obejścia dla mnie było to:

W kontrolerze widoku, który jest posiadanie prefersStatusBarHidden ustawiona na yes dodać:

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [self.navigationController setNavigationBarHidden:YES]; 
    [self.navigationController setNavigationBarHidden:NO]; 
} 
+0

Tego rodzaju prace, ale należy pamiętać, że zakłóca to interaktywny ruch pop. Dotykanie i przeciąganie lewej krawędzi do tyłu i do przodu będzie wielokrotnie uruchamiać viewWillDisappear kilka razy. W jakiś sposób powoduje to, że UINavigationController traci swoje stosy VC, co czasami powoduje nieskończony cykl przycisków wstecz (kliknięcie w tył, następuje animacja, ale VC nie jest wyrzucany ze stosu). –

+0

Działa dla mnie i chociaż nie podoba mi się zbytnio rozwiązanie, przyjmuję to jako odpowiedź, dopóki ktoś nie dostarczy lepszego ... dzięki! –

+3

Przesłano zgłoszenie błędu do witryny bugreport.apple.com o identyfikatorze: 19416305. Duplikat, jeśli możesz, dziękuję! –

0

wierzę, że to dlatego, że jest prefersStatusBarHidden szeroki ustawienia aplikacji, a nie na widoku kontrolera.

może być w stanie obejść ten problem poprzez dodanie do pchane widok kontrolerów ViewWillDisappear metoda

- (void)viewWillDisappear:(BOOL)animated { 
[UIApplication sharedApplication].statusBarHidden = NO; 
} 
+0

nie sądzę czy jest to ustawienie app-szeroki, ponieważ jest to metoda który powinien zostać nadpisany przez kontroler widoku, który nie chce pokazywać paska stanu. Pasek stanu zachowuje się zgodnie z oczekiwaniami, znika po naciśnięciu i pojawia się ponownie w pop - otwarcie pokazując go w viewwilldisappear tutaj niestety nie pomaga. –

Powiązane problemy