Как программно скрыть и показать строку состояния в iOS 13? - PullRequest
0 голосов
/ 27 сентября 2019

Я сделал следующий общий метод для скрытия и отображения строки состояния.Он отлично работает до iOS 13, но я получаю следующий сбой, когда я запускаю его для устройства с iOS 13 или выше.

+(void)showStatusBar:(BOOL)show
{
    UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];

    if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
        [[UIApplication sharedApplication] setStatusBarHidden:!show withAnimation:UIStatusBarAnimationNone];
    }
}

Получение следующей ошибки для iOS 13

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

Что можно сделать, чтобы скрыть и отобразить строку состояния только для некоторых контроллеров представления?

...