发布时无法隐藏状态栏
我正在构建一个iOS 9
应用程序,其中包含horizontal
页面导航,需要在某些页面上显示状态栏,并将其隐藏在其他页面上。我想使用淡入/淡出动画,所以我必须设置发布时无法隐藏状态栏
View controller-based status bar appearance = NO
和更新状态栏是这样的:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
网页间导航时,此程序完美的作品,但我在启动时无法摆脱状态栏。
我已经尝试设置:Status bar is initially hidden = YES
添加此到NavigationControllers viewDidLoad:
[[UIApplication sharedApplication] setStatusBarHidden:YES];
self.statusBarHidden = YES;
[self setNeedsStatusBarAppearanceUpdate];
添加这AppDelegates didFinishLaunchingWithOptions:
application.statusBarHidden = YES;
添加此初始页面视图控制器:
- (BOOL)prefersStatusBarHidden {
return YES;
}
检查在中普通“状态栏”中的“隐藏状态栏”选项>部署信息
和设置在链接故事板元素
但状态栏中的“无”仍然显示出来发射。如何在不改变View controller-based status bar appearance
的值的情况下摆脱启动时的状态栏?
原来我在做的事是正确的,但是有一个掩埋在继承代码中的错误[[UIApplication sharedApplication] setStatusBarHidden:NO];
。我grepped,但忽视了线......
(使用git grep StatusBar
找到一个混帐回购协议是变异状态栏的代码行)
此外,唯一需要的代码是:
View controller-based status bar appearance = NO
(在plist中)
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
随时随地状态栏需要更新(通常在viewWillAppear
)
changing plist file :
set Status bar is initially hidden = YES
add row: View controller-based status bar appearance = NO
只需选中项目的隐藏状态栏,设置如图。
- 项目设置 - 用于启动应用程序时隐藏状态栏。
- 下面添加的viewController中为其中需要隐藏。
- (BOOL)prefersStatusBarHidden { return YES; }
/------ UPDATE -----/
/------动画状态栏-----/
在plist中。
View controller-based status bar appearance = NO
然后在viewWillAppear方法中。
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
为了实现你在找什么,你需要在app.plist
文件中设置:
Status bar is initially hidden
到YES
View controller-based status bar appearance
在每个视图控制器NO
然后秀 it
[[UIApplication sharedApplication] setStatusBarHidden:NO];
或隐藏它:
[[UIApplication sharedApplication] setStatusBarHidden:YES];
为什么你不想茶基于视图控制器的状态栏外观的nge值? –
我认为那必须是为了动画状态栏,当它被设置为NO时,我无法做到这一点 – Cbas