我在View controller-based status bar appearance
文件中将YES
设置为Info.plist
。
视图控制器不在导航堆栈中,通过模态segue呈现。在其中,我对Swift 3 / iOS 10具有以下属性覆盖:
override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent }
仍然,状态栏保留其默认(深色)样式。但是,当我在preferredStatusBarStyle
中打印viewDidLoad
时,我得到rawValue
1
。签出documentation,1
是指.lightContent
。
我正在尝试将状态栏的样式更改为.lightContent
,因为该视图包含UIVisualEffectView
,UIBlurEffectStyle
值为dark
。
我做错了什么?
答案 0 :(得分:4)
在matt answer的帮助下,我能够解决我的问题。我必须在viewDidLoad
中使用以下内容:
modalPresentationCapturesStatusBarAppearance = true
当我尝试使用matt的解决方案时,我收到了两个编译错误:Cannot override mutable property with read-only property 'modalPresentationCapturesStatusBarAppearance'
和Getter for 'modalPresentationCapturesStatusBarAppearance' with Objective-C selector 'modalPresentationCapturesStatusBarAppearance' conflicts with getter for 'modalPresentationCapturesStatusBarAppearance' from superclass 'UIViewController' with the same Objective-C selector
答案 1 :(得分:2)
将其添加到模态显示的视图控制器:
find_package(ZeroMQ REQUIRED)
答案 2 :(得分:0)
转到 AppDelegate.swift ,然后转到功能 didFinishLaunchingWithOptions ,设置您想要的颜色,如下所示:
UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent
请告诉我它是否可以帮助您。 感谢。
答案 3 :(得分:-2)
解决方法:
将View controller-based status bar appearance
更改为否
self.setStatusBarStyle(.lightContent)
self.setNeedsStatusBarAppearanceUpdate()