1

В настоящее время я использую UIModalPresenationOverFullScreen, чтобы представить следующий контроллер, и в этот момент я хочу изменить UIStatusBarStyle. Предыдущий контроллер имеет UIStatusBarStyleDefault, но в текущем я хочу использовать UIStatusBarStyleLightContent.Изменение UIStatusbarStyle даже с UIModalPresentationOverFullScreen

Из-за UIModalPresenationOverFullScreen предыдущий контроллер все еще жив в фоновом режиме. Что вызывает проблему, что текущий наследует этот стиль.

В файле Plist я настроил View controller-based status bar appearance Да и пытался несколько советов, как:

[self setNeedsStatusBarAppearanceUpdate]; 
self.navigationController.navigationBar.barStyle =UIStatusBarStyleLightContent; 
- (UIStatusBarStyle)preferredStatusBarStyle { 
     return UIStatusBarStyleLightContent; 
} 

Nothings, кажется, работает. Любой, кто сталкивается с той же проблемой. Я все еще хочу, чтобы предыдущий контроллер был в живых, но изменил UIStatusBarstyle.

+0

использование в viewdidLoad следующего контроллера "[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleLightContent]; [само setNeedsStatusBarAppearanceUpdate];" – the1pawan

+0

Не работает. Такая же проблема, но по умолчанию. @ the1pawan – Martin

ответ

4

Вы можете использовать

self.modalPresentationCapturesStatusBarAppearance = YES; 

в контроллере модальное.

Из документации:

modalPresentationCapturesStatusBarAppearance недвижимость

Указует, является ли контроллер представления, представлены не полноэкранный, берет на себя управление в строке состояния внешнего вида от контроллера представления представления.

 Смежные вопросы

  • Нет связанных вопросов^_^