ios xcode swift statusbar ios9

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; }


En veloz 3.

En su controlador de vista:

override var preferredStatusBarStyle: UIStatusBarStyle { return UIStatusBarStyle.lightContent }

Si desea que cuando la aplicación ejecute su pantalla de inicio también tenga la barra de estado en LightContent, entonces:


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 } }