В моем приложении используется стиль панели default
status для экранов перед входом в систему. - После входа в систему приложение использует стиль lightContent
для строки состояния во всем приложении.
Все работало нормально до iOS 12. Это начало создавать проблемы с iOS 13 (только когда включен темный режим).
Вот вещи, которые я уже пробовал, но все еще не работает нормально.
- Я установил
UIUserInterfaceStyle
наLight
- Я установил
UIViewControllerBasedStatusBarAppearance
наYES
- Затем я попробовал код ниже в отдельном контроллере представления
override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent }
- Также добавил эту строку в
viewDidLoad()
файла класса.
setNeedsStatusBarAppearanceUpdate()
Но все же я не избавляюсь от этой вещи, связанной со строкой состояния. Мне просто нужно, чтобы моя строка состояния была темной на экранах перед входом в систему, и как только пользователь вошел в систему, она должна светиться.
Все приложение должно иметь одинаковый интерфейс для темного и светлого режимов. (как и для ОС ниже iOS 13), которая сейчас работает нормально, но меняет цвет только строка состояния.
Примечание: все работает нормально, когда темный режим отключен. Это создает проблемы только при включенном темном режиме.
Насколько я понимаю, я создал новый проект в Xcode и добавил 3 экрана с разным внешним видом строки состояния.
Рабочий корпус
VC1 - Default
Style
VC2 - Default
Style
VC3 - LightContent
Style
Рабочий корпус
VC1 - LightContent
Стиль
VC2 - LightContent
Стиль
VC3 - Default
Стиль
Случай неработоспособности (сбоя)
VC1 - Default
Style
VC2 - LightContent
Style
VC3 - Default
Style
Я предполагаю, что если вы используете любой из стилей в своем приложении, он отлично работает независимо от темного или светлого режима устройства. Но если вы объедините Default
и LightContent
для отображения строки состояния в вашем приложении, тогда оно не будет работать должным образом, пока включен темный режим.
Может ли кто-нибудь помочь мне с этим поведением стиля строки состояния?
Вот три моих файла контроллера представления. Он просто подталкивает один контроллер к другому. Это файлы для демонстрационного проекта, о котором я упоминал выше. Который имеет случай отказа.
Когда темный режим выключен: я всегда получаю default
стиль строки состояния, даже если переопределяю стиль строки состояния в VC2.
Когда темный режим выключен: я всегда получаю lightContent
стиль строки состояния, даже когда я переопределяю стиль строки состояния в VC1 и VC3.