UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
Run Code Online (Sandbox Code Playgroud)
我使用这个在所有应用程序中将状态栏更改为亮.但现在我需要在一个View Controller中将其更改为黑色.我怎样才能做到这一点?
Mar*_*Him 12
View controller-based status bar appearance在project.plist中设置为NO
使用viewWillAppear和将viewWillDisappear设置和重置statusBarStyle,同时保持属性与之前的statusBarStyle一样
let initialStatusBarStyle : UIStatusBarStyle
func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
initialStatusBarStyle = UIApplication.sharedApplication().statusBarStyle
UIApplication.sharedApplication().setStatusBarStyle(.LightContent, animated: animated)
}
func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.sharedApplication().setStatusBarStyle(initialStatusBarStyle, animated: animated)
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ens 12
这个解决方案有点不同:
import UIKit
@IBDesignable
class DesignableViewController: UIViewController {
@IBInspectable var LightStatusBar: Bool = false
override var preferredStatusBarStyle: UIStatusBarStyle {
get {
if LightStatusBar {
return UIStatusBarStyle.lightContent
} else {
return UIStatusBarStyle.default
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
从以下位置更改ViewController的代码:
class ViewController: UIViewController {
Run Code Online (Sandbox Code Playgroud)
至:
class ViewController: DesignableViewController {
Run Code Online (Sandbox Code Playgroud)
选择Storyboard上的ViewControllers并转到Attributes Inspector:

在我的项目中,我设置了一个带有2个视图控制器的标签栏控制器,并在两者之间来回切换.似乎对我来说工作正常.

解决:
Swift 3.1
只需在View Controller中使用此代码:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9490 次 |
| 最近记录: |