Подтвердить что ты не робот

Цвет текста строки состояния в XCode 6-b3 (Swift)

Я пытаюсь изменить цвет текста строки состояния, но ни один ответ из этого потока не работает. Любое особенно для XCode 6?

Я пробовал вставить:

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return UIStatusBarStyle.LightContent
}

to UIViewController

также

UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)

до AppDelegate.swift И я попытался изменить его в info.plist Но это не влияет на это. Как изменить цвет текста строки состояния на белый?

4b9b3361

Ответ 1

В вашем Info.plist вам нужно определить Просмотреть состояние строки состояния на основе контроллера.

enter image description here

Если вы определяете его ДА, вы должны переопределить функцию preferredStatusBarStyle в каждом контроллере представления.

Если вы определяете его НЕТ, вы можете установить стиль в AppDelegate, используя

UIApplication.sharedApplication().statusBarStyle = .LightContent

Ответ 2

Просто установите "Просмотр состояния строки состояния на основе контроллера == НЕТ" в вашем plist и поместите одну строку в класс appdelegate в методе didfinshLaunching.. p >

 UIApplication.sharedApplication().statusBarStyle = .LightContent

Ответ 3

Swift 3.0

Просто установите View controller-based status bar appearance == NO в свой *.plist и поставьте ниже код в классе appdelegate в методе didFinishLaunchingWithOptions до return.

let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView
if statusBar.responds(to:#selector(setter: UIView.backgroundColor)) {
    statusBar.backgroundColor = UIColor.red
}
UIApplication.shared.statusBarStyle = .lightContent

Вы можете изменить backgroundColor и statusBarStyle в соответствии с вашими требованиями.

Ответ 4

Обязательно установите View controller-based status bar appearance в файле info.plist на Yes.

Кроме того, если вы находитесь в UINavigationController, вы не можете просто установить стиль в ViewControllers в нем. Подкласс UINavigationController и добавьте к нему:

override func preferredStatusBarStyle() -> UIStatusBarStyle {

    if let vc = self.viewControllers?.last as? UIViewController {
        return vc.preferredStatusBarStyle()
    }

    return super.preferredStatusBarStyle()
}

Теперь вы можете установить стиль бара в подклассе UIViewController, и UINavigationController будет его слушать:).

Ответ 5

Keenle находится на правильном пути, начиная с iOS7, вам нужно отказаться от стилей состояния на панели управления, основанных на просмотре, прежде чем вы сможете установить ее в приложении.

doc: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/index.html#//apple_ref/occ/instm/UIApplication/setStatusBarStyle:animated:

"Чтобы отказаться от поведения внешнего вида панели управления на основе контроллера, вы должны добавить ключ UIViewControllerBasedStatusBarAppearance со значением NO в файл Info.plist вашего приложения, но делать это не рекомендуется."