2017-07-26 43 views
9

Mam problem z nowym pasku nawigacyjnym dla iOS 11.bar iOS 11 Nawigacja duży tytuł ma czarny kolor, gdy nacisk na widok pop kontrolera

W widoku głównym ustawić nową nawigację kodem:

if (@available(iOS 11.0, *)) { 
    self.navigationController.navigationBar.prefersLargeTitles = YES; 
    self.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeAlways; 
} 

Następnie z widoku głównego, podsunąłem do innego widoku i ustawić kod pasku nawigacyjnym przez

if (@available(iOS 11.0, *)) { 
    self.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeNever; 
} 

To działa dobrze. Jednak, gdy Push i Pop zobaczyć czarny kolor wyglądał jak na zdjęciu poniżej:

enter image description here

nie wiem dlaczego czarny kolor pojawił się na tym widoku choć nie ustawić z powrotem na ziemię pasku nawigacyjnym jest kolor czarny dla całego ekranu w mojej aplikacji.

Ktoś ma jakiś pomysł na problem. Podaj mi propozycję rozwiązania tego błędu. Dzięki.

+0

Pokaż swój kod AccountVC –

Odpowiedz

5

Rozwiązałem to w mojej własnej aplikacji, podklasując UINavigationController i ustawiając jej view.backgroundColor.

+0

Tak. Ciemne oddziaływanie według kodu ustawia jasny kolor w nawigacji głównej. –

+0

Zgadzam się, ale pokazany kolor jest najciemniejszy niż ten, który wybierzesz, i nie wiem dlaczego. – sancho

+0

@sancho Shadows, może? – cook

3

Rozwiązałem ten problem, ustawiając kolor tła kontrolera nawigacyjnego w klasie UIViewController, w której otrzymuję kolor czarny.

Oto kod użyłem:

navigationController?.view.backgroundColor = UIColor.white 

Próbowałem zmieniając kolory i cienie tła w scenorys ale nie wydaje się, aby rozwiązać ten problem. Mam nadzieję, że ta odpowiedź nadal ma znaczenie.

1

I rozwiązać ten problem z prostym przedłużeniem

extension UINavigationController { 

    @IBInspectable var backgroundColor: UIColor { 
     set { 
      self.view.backgroundColor = newValue; 
     } 
     get { 
      return self.view.backgroundColor ?? UIColor.black; 
     } 
    } 

} 

Można zmienić kolor tła z ujęć!