Невозможно изменить полосу на собственный локальный темный режим с помощью одной простой линии. Но мы можем написать функцию, которая делает что-то похожее на то, что вы хотите. Обратите внимание, что правильный способ сделать это - добавить переключатель стиля и цветов, которые используют коллекцию признаков, чтобы переключаться между различными глобальными визуальными режимами.
extension UIViewController {
enum NavigationBarStyle {
case dark, light
}
func setNavigationBar(style: NavigationBarStyle) {
guard let bar = view.subviews.first(where: { return $0 is UINavigationBar }) as? UINavigationBar else { return }
func set(item: UINavigationItem, color: UIColor) {
item.rightBarButtonItem?.tintColor = color
item.leftBarButtonItem?.tintColor = color
}
bar.barStyle = style == .dark ? .black : default
let color: UIColor = style == .dark ? .white : .black
for item in bar.items ?? [] {
bar.titleTextAttributes = [.foregroundColor: color]
set(item: item, color: color)
}
}
}
Вам нужно будет сделать уверен, что вы уже добавили панель навигации в подпредставление контроллера. Я сделал что-то подобное программно, но я представляю, что использовать интерфейсный конструктор тоже самое. Использование;
setNavigationBar(style: .dark)