Jak mogę szybko ukryć pasek nawigacyjny przed pierwszym ViewController lub określonym ViewController?
Użyłem następującego kodu w viewDidLoad()
:
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.isNavigationBarHidden = true
}
a także na viewWillAppear
:
override func viewWillAppear(animated: Bool) {
self.navigationController?.isNavigationBarHidden = true
}
Obie metody ukrywają kontroler nawigacji przed wszystkimi ViewControllerami.
ios
swift
uinavigationcontroller
uinavigationbar
Aby Mathew
źródło
źródło
Odpowiedzi:
Jeśli wiesz, że wszystkie inne widoki powinny mieć pasek widoczny, możesz użyć go,
viewWillDisappear
aby ustawić go ponownie jako widoczny.W Swift:
źródło
Szybki 3
źródło
self.
niepotrzebna.Można odkryć
navigationController
wviewWillDisappear
Szybki 3
źródło
Możesz również utworzyć rozszerzenie dla tego, abyś mógł ponownie użyć rozszerzenia bez implementowania tego wielokrotnie w każdym kontrolerze widoku.
Możesz więc użyć metod rozszerzenia, jak poniżej
źródło
W Swift 3 możesz użyć właściwości isNavigationBarHidden, aby wyświetlić lub ukryć pasek nawigacji
źródło
Sposoby wyświetlania paska nawigacji w Swift:
źródło
Sposoby ukrywania paska nawigacji w Swift:
źródło
ale tylko wtedy, gdy jest częścią UINavigationController
zrób to, gdy chcesz to odzyskać
źródło
Używam wariantu powyższego i izoluję sekcje mojej aplikacji, aby były osadzone w różnych NavControllerach. W ten sposób nie muszę resetować widoczności. Na przykład bardzo przydatne w sekwencjach startowych.
źródło
źródło
Wywołaj metodę set hide w widoku Pojawi się i zniknie. jeśli nie wywołasz metody, widok zniknie ze statusem false. Ukryje pasek nawigacji w pełnej hierarchii nawigacji
źródło
Możesz to zrobić z poziomu kontrolera okien (Swift3)
źródło