Прочитавши всі пропозиції та спробувавши кілька речей, я міг змусити це працювати для конкретних контролерів перегляду, виконавши наступні кроки:
Перший крок:
Відкрийте свій info.plist і вставте нову клавішу під назвою " Перегляд зовнішнього вигляду на основі контролера " на " НІ"
Другий крок (лише пояснення, не потрібно цього втілювати):
Зазвичай ми ставимо наступний код у програму (_: didFinishLaunchingWithOptions :) методу AppDelegate,
Швидкий 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Швидкий 3
UIApplication.shared.statusBarStyle = .lightContent
але це впливає на statusBarStyle
всі ViewControllers.
Отже, як змусити це працювати для конкретних ViewControllers - заключний крок:
Відкрийте файл перегляду контролера, де ви хочете змінити, statusBarStyle
і введіть такий код viewWillAppear()
,
Швидкий 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Швидкий 3
UIApplication.shared.statusBarStyle = .lightContent
Крім того, viewWillDisappear()
реалізуйте метод для цього конкретного viewController і введіть наступні рядки коду,
Швидкий 2
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default
}
Швидкий 3
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.shared.statusBarStyle = UIStatusBarStyle.default
}
Цей крок спочатку змінить значення statusBarStyle
для конкретного контролера перегляду, а потім змінить його назад, default
коли певний контролер перегляду зникне. Нереалізація viewWillDisappear()
заповіту statusBarStyle
назавжди змінить нове визначене значенняUIStatusBarStyle.LightContent
Status bar is initially hidden = YES
у файл info.plist, "Перегляд зовнішнього вигляду рядка стану на основі контролера = НІ" призведе до прихованості рядка стану.