Swift 4.2, iOS 12
View controller-based status bar appearance
теперь необходимо установить на YES
в info.plist
, поскольку UIKit больше не хочет, чтобы мы редактировали стиль строки состояния с помощью UIApplication.shared
- стиль строки состояния теперь основан на контроллере представления.
Затем, если вы хотите, чтобы изменение было применено на уровне приложения, просто переопределите preferredStatusBarStyle
в соответствующем контроллере представления контейнера (в идеале - корне) ...
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
... и это будет распространяться на все контроллеры представления. И если вы хотите редактировать стиль строки состояния для каждого контроллера представления, примените это переопределение для каждого контроллера представления.
Если стиль строки состояния когда-либо изменяется во время выполнения, вам нужно вызвать setNeedsStatusBarAppearanceUpdate()
(из любого места в контейнере / корневом контроллере представления или в этом конкретном контроллере представления), в противном случае это не требуется.