cambiar el color de la barra de estado según el time

No estoy seguro si es posible, pero ¿hay alguna forma de cambiar el color de la barra de estado según la hora? Estaba jugueteando con este código:

import UIKit class testTimeController: UIViewController{ func lightstatusbar() { var prefernetworkingStatusBarStyle: UIStatusBarStyle { return .lightContent } } func darkstatusbar() { var prefernetworkingStatusBarStyle: UIStatusBarStyle { return .default } } override func viewDidLoad() { super.viewDidLoad() let hour = NSCalendar.current.component(.hour, from: NSDate() as Date) switch hour{ case 1..<6: lightstatusbar() break case 7..<18: darkstatusbar() break case 19..<24: lightstatusbar() break default: darkstatusbar() } } 

Las otras respuestas no funcionan para mí, así que aquí está mi solución de trabajo, con respecto a esta respuesta :

Paso 1 Agregue siguiente a su info.plist :

View controller-based status bar appearance con el valor boolean NO

introduzca la descripción de la imagen aquí

Paso 2 Agregue esto a la application(_:didFinishLaunchingWithOptions:) en AppDelegate.swift :

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { let hour = NSCalendar.current.component(.hour, from: NSDate() as Date) switch hour { case 1..<6: UIApplication.shanetworking.statusBarStyle = .lightContent case 7..<18: UIApplication.shanetworking.statusBarStyle = .default case 19..<24: UIApplication.shanetworking.statusBarStyle = .lightContent default: UIApplication.shanetworking.statusBarStyle = .default } return true } 

Sí, pero solo implementa y ovvéide

 override var prefernetworkingStatusBarStyle: UIStatusBarStyle { let hour = NSCalendar.current.component(.hour, from: NSDate() as Date) switch hour{ case 1..<6: .lightContent break case 7..<18: .darkContent break case 19..<24: .lightContent break default: .darkContent } 

No ponga la var dentro de otro método que no haga nada.

Utilicé el enfoque @ SeanLintern88, simplemente agregué "return"

 override var prefernetworkingStatusBarStyle: UIStatusBarStyle { let hour = NSCalendar.current.component(.hour, from: NSDate() as Date) switch hour{ case 1..<6: return.lightContent case 7..<18: return.default case 19..<24: return.lightContent default: return.default } }