Как изменить цвет фона строки состояния и текста на iOS 13? - PullRequest
8 голосов
/ 18 июня 2019

С приходом iOS 13 представление statusBar больше не доступно через:

value(forKey: "statusBar") as? UIView

В связи с:

Завершение приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Приложение называется -statusBar или -statusBarWindow для UIApplication: этот код должен быть изменен, так как больше нет строки состояния или окна строки состояния. Использовать Вместо этого объект statusBarManager на сцене окна. '

Но не ясно, как его следует использовать для изменения цвета, поскольку keyWindow?.windowScene?.statusBarManager не содержит ничего, связанного с ним.

Я компилирую свой код с (iOS 10, *) совместимостью, поэтому я намерен продолжать использовать UIKit.

Есть идеи по этому вопросу?

1 Ответ

0 голосов
/ 04 июля 2019

вы можете попробовать это

if (@available(iOS 13, *))
{
    UIView *_localStatusBar = [[UIApplication sharedApplication].keyWindow.windowScene.statusBarManager performSelector:@selector(createLocalStatusBar)];
    statusBar = [_localStatusBar performSelector:@selector(statusBar)];
}
else
{
    statusBar = [[UIApplication sharedApplication] valueForKey:@"statusBar"];
}
...