Предпочтительный стиль строки состояния на многозадачности iPad - разделенный экран

У меня есть два контроллера вида - первый имеет UIStatusBarStyleDefaultу второго есть UIStatusBarStyleLightContent,

VC1 представляет VC2 в виде модального листа. Таким образом, при представлении в обычной коллекции признаков, VC2 представляется как UIModalPresentationFormSheet и VC1 устанавливает в строке состояния значение по умолчанию. Но в компактной коллекции признаков VC2 является полноэкранным и устанавливает в строке состояния стиль Light Content.

Проблема заключается в том, что при переключении между обычным и компактным (в полноэкранном режиме на листе формы) строка состояния не обновляется.

Полный экран

Попытка - [self setNeedsStatusBarAppearanceUpdate]; после изменения черты коллекции не решить проблему.

Любая помощь будет высоко ценится!

1 ответ

Решение
// This controls whether this view controller takes over control of the status bar's appearance when presented non-full screen on another view controller. Defaults to NO.

@available(iOS 7.0, *)
public var modalPresentationCapturesStatusBarAppearance: Bool

Использование:

navigationController.modalPresentationStyle = .FormSheet
navigationController.modalPresentationCapturesStatusBarAppearance = true

Как только это установлено, контроллер корневого представления этого контроллера навигации может переопределить предпочитаемый StatusBarStyle()

Другие вопросы по тегам