Po przeczytaniu wszystkich sugestii i wypróbowaniu kilku rzeczy, mogę sprawić, by działało to dla określonych kontrolerów widoku, wykonując następujące kroki:
Pierwszy krok:
Otwórz info.plist i wstaw nowy klucz o nazwie „ Wyświetl wygląd paska stanu kontrolera ” na NIE
Drugi krok (tylko wyjaśnienie, nie trzeba tego wdrażać):
Zwykle wstawiamy następujący kod do aplikacji (_: didFinishLaunchingWithOptions :) metody AppDelegate,
Swift 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Szybki 3
UIApplication.shared.statusBarStyle = .lightContent
ale wpływa to statusBarStyle
na wszystkie ViewControllers.
Jak więc uruchomić to dla określonych ViewControllerów - ostatni krok:
Otwórz plik viewcontroller, w którym chcesz zmienić, statusBarStyle
i wstaw następujący kod viewWillAppear()
,
Swift 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Szybki 3
UIApplication.shared.statusBarStyle = .lightContent
Ponadto zaimplementuj viewWillDisappear()
metodę dla tego konkretnego viewController i wstaw następujące wiersze kodu,
Swift 2
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default
}
Szybki 3
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.shared.statusBarStyle = UIStatusBarStyle.default
}
Ten krok najpierw zmieni statusBarStyle
dla określonego kontrolera widoku, a następnie zmieni go z powrotem na default
zniknięcie określonego kontrolera widoku. Niewdrożenie viewWillDisappear()
spowoduje zmianę na statusBarStyle
stałe na nową zdefiniowaną wartośćUIStatusBarStyle.LightContent
Status bar is initially hidden = YES
w pliku info.plist, „Wyświetl wygląd paska stanu na kontrolerze = NIE” spowoduje ukrycie paska stanu.