UIApplication.sharedApplication(). SetStatusBarStyle() obsoleto en iOS 9
xcode swift (8)
Creo que encontré una solución. Terminé configurando el
View controller-based status bar appearance
booleano a NO
En mi archivo info.plist
Luego fui a la General settings -> Deployment info
mi destino General settings -> Deployment info
y cambié la opción desplegable Status Bar Style
a Light
lugar de Default
Esto cambió el estilo de la barra de estado a Light
para toda mi aplicación, justo lo que quería.
¡Espero que esto ayude!
he estado usando
UIApplication.sharedApplication().setStatusBarStyle()
En mi appDelegate y funcionó bien, pero desde iOS 9, este método está en desuso y no puedo encontrar una alternativa.
Quiero cambiar el estilo de la barra de estado a .LightContent para toda la aplicación, pero la única sugerencia que xCode me da es que maneje esto en cada VC por separado con;
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
¿Alguien tiene una idea de cómo hacer esto para toda la aplicación?
Gracias por adelantado
En Swift 3 es así:
UIApplication.shared.statusBarStyle = .lightContent
En info.plist, establezca: View controller-based status bar appearance
booleano a NO
En el didFinishLaunchingWithOptions
del delegado de la didFinishLaunchingWithOptions
, use la application
parámetros de función (y no la [UIApplication sharedApplication]
o UIApplication.sharedApplication()
la aplicación UIApplication.sharedApplication()
en swift) para establecer esto de la siguiente manera:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
application.statusBarStyle = UIStatusBarStyleLightContent;
}
Esta es la nueva forma en AppDelegate:
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
Esto funcionó bien para mí en Xcode 7.
En AppDelegate:
UIApplication.sharedApplication().statusBarStyle = .LightContent
Para actualizar dinámicamente UIStatusBarStyle en los controladores de vista use este método
esto también eliminará la advertencia obsoleta
''setStatusBarStyle:'' está en desuso: primero se desaprobó en iOS 9.0 - Uso - [UIViewController preferredStatusBarStyle]
para llamar
[[UIApplication sharedApplication] setStatusBarStyle:style];
Empecemos
C objetivo
define UtilityFunction
+(void)setStatusBarStyle:(UIStatusBarStyle )style {
[[NSUserDefaults standardUserDefaults] setInteger:style forKey:@"UIStatusBarStyle"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
anule este método en su BaseViewController
- (UIStatusBarStyle)preferredStatusBarStyle {
UIStatusBarStyle style = [[NSUserDefaults standardUserDefaults] integerForKey:@"UIStatusBarStyle"];
return style;
}
establece el valor de UIStatusBarStyle para AnyViewController utilizando una función de utilidad como la siguiente:
[UtilityFunctions setStatusBarStyle:UIStatusBarStyleDefault];
// call below code for preferred style
[self preferredStatusBarStyle];
Swift 4.0
define UtilityFunction
class func setPreferedStyle(style:UIStatusBarStyle)->Void {
UserDefaults.standard.set(style, forKey: "UIStatusBarStyle")
UserDefaults.standard.synchronize()
}
anule este método en su BaseViewController
override var preferredStatusBarStyle: UIStatusBarStyle {
if let style: UIStatusBarStyle = UIStatusBarStyle(rawValue:UserDefaults.standard.integer(forKey: "UIStatusBarStyle")) {
return style
}
return UIStatusBarStyle.lightContent
}
establece el valor de UIStatusBarStyle para AnyViewController utilizando una función de utilidad como la siguiente:
Utility.setPreferedStyle(style: .lightContent)
// call below code for preferred style
preferredStatusBarStyle()
para aquellos que todavía trabajan con Swift 3 en Xcode 8:
(ligeramente diferente a la respuesta anterior de Marlon Ruiz, no una función de anulación, sino dentro de viewDidLoad)
override func viewDidLoad() {
super.viewDidLoad()
var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}