ika*_*imo 3 objective-c statusbar uistatusbar ios7
我想通过按下按钮将状态栏的颜色从白色更改为黑色,PROGRAMMATICALLY仅在单个ViewController中
这是代码:
- (UIStatusBarStyle)preferredStatusBarStyle {
NSLog(@"PreferredStatusBarStyle");
if(nav_bar.alpha==1)
{
NSLog(@"->UIStatusBarStyleBlackOpaque");
return UIStatusBarStyleBlackOpaque;
}
else
{
NSLog(@"->UIStatusBarStyleLightContent");
return UIStatusBarStyleLightContent;
}}
Run Code Online (Sandbox Code Playgroud)
然后,当我按下按钮动作是:
[self setNeedsStatusBarAppearanceUpdate];
Run Code Online (Sandbox Code Playgroud)
但这不起作用!
当我按下按钮日志时,根据navbar.alpha写入正确的状态,但状态栏文本颜色保持UIStatusBarStyleBlackOpaque,就像出现视图时一样.
rdo*_*gan 11
setStatusBarStyle:animated:已被弃用.在iOS9中,您可以使用preferredStatusBarStyle和实现相同的功能setNeedsStatusBarAppearanceUpdate.
在View Controller中:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
if (condition) {
return .LightContent
}
return .Default
}
Run Code Online (Sandbox Code Playgroud)
当你的病情发生变化时:
self.setNeedsStatusBarAppearanceUpdate()
Run Code Online (Sandbox Code Playgroud)
小智 6
在Swift 4上:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Run Code Online (Sandbox Code Playgroud)
希望它可以帮助其他人找到这篇文章。