Ich möchte eine Funktion in ViewDidLoad() in einem Ansichtscontroller aufrufen, um das Verhalten der Statusleiste dieses Ansichtscontrollers festzulegen. Ich möchte, dass die Statusleiste 3 Verhaltenszustände hat: normal, bleib hell, bleib dunkel.Verwenden einer Enumeration zum Ausführen einer Funktion?
// view controller view did load
override func viewDidLoad() {
super.viewDidLoad()
// status bar behavior
// call some function
setNeedsStatusBarAppearanceUpdate()
}
Ich habe nicht viel Erfahrung mit enums, also bitte sagen Sie mir, wie zu erreichen, was ich versuche zu erreichen. Letztendlich möchte ich nur eine Funktion in viewDidLoad() aufrufen, abhängig vom Verhalten der Statusleiste, die ich für diesen View-Controller haben möchte (normal, hell bleiben, dunkel bleiben).
enum statusBarBehavior {
case regular
case stayLight
case stayDark
func statusBar() {
switch self {
// changes status bar depending on a variable
case .regular:
if nightTime == true {
UIApplication.shared.statusBarStyle = .lightContent
} else {
UIApplication.shared.statusBarStyle = .default
}
// permanently keeps status bar light
case .stayLight:
UIApplication.shared.statusBarStyle = .lightContent
// permanently keeps status bar dark
case .stayDark:
UIApplication.shared.statusBarStyle = .default
}
}
}
Alle Hilfe wird sehr geschätzt.
Es hat nicht für mich funktioniert. Ich hatte noch nie das Glück, eine Statusleiste mit vorrangigem StatusBarStyle zu gestalten. Stattdessen verwende ich in viewDidLoad() UIApplication.shared.statusBarStyle = .lightContent, was jedes Mal funktioniert. Lass mich versuchen, deine Lösung damit zu arbeiten. –