Я пытаюсь изменить внешний вид строки состояния на основе пользовательских ошибок, которые определяют, включен ли у пользователя режим, но использование setNeedsStatusBarAppearanceUpdate()
не работает.Я установил строку состояния по умолчанию как Light.Это код, который я сейчас использую:
var darkModeOn: Bool!
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let isDarkMode = UserDefaults.standard.bool(forKey: "isDarkMode") // Retrieve the state
if isDarkMode == false{
UserDefaults.standard.set(false, forKey: "isDarkMode")
UIApplication.shared.statusBarStyle = .default
view.backgroundColor = UIColor.white
}else{
UserDefaults.standard.set(true, forKey: "isDarkMode")
UIApplication.shared.statusBarStyle = .lightContent
view.backgroundColor = UIColor(red: 35/255, green: 35/255, blue: 35/255, alpha: 1)
}
}
И я пытался использовать
override var preferredStatusBarStyle: UIStatusBarStyle {
return darkModeOn ? .lightContent : .default
}
, но показывает только светлую строку состояния