我正在编写一个包含多个视图的iOS应用程序.我已经将App设置为使用基于ViewController的状态栏样式,这允许我使用以下代码
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Run Code Online (Sandbox Code Playgroud)
这有点像预期的那样.
但后来我在导航控制器中嵌入了视图,并将BarButtonItem与showSegue连接起来.从那时起,视图的ViewController切换为忽略样式设置并显示默认的黑色状态栏.
小智 65
当你在一个不会被调用的导航控制器中时.将调用导航控制器的preferredStatusBarStyle.试试这个以及你的代码:
extension UINavigationController {
open override var preferredStatusBarStyle: UIStatusBarStyle {
return topViewController?.preferredStatusBarStyle ?? .default
}
}
Run Code Online (Sandbox Code Playgroud)
有一个更简洁的解决方案(Apple 推荐):
extension UINavigationController {
override open var childForStatusBarStyle: UIViewController? {
return topViewController
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5849 次 |
| 最近记录: |