Я сделал следующий общий метод для скрытия и отображения строки состояния.Он отлично работает до 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 на сцене окна. '
Что можно сделать, чтобы скрыть и отобразить строку состояния только для некоторых контроллеров представления?