如下代码效果不错:
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
}
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
}别忘了把info.plist中增加一项:View controller-based status bar appearance,并且把值设置为NO。如果设置为YES,则在controller中用回调方法去掉statusbar,但是效果好像不太好,希望各位指正啊!
- (BOOL)prefersStatusBarHidden{
return YES;//隐藏
}[self setNeedsStatusBarAppearanceUpdate];//刷新statusbar状态
iOS导航栏与状态栏隐藏
本文介绍了一种在iOS应用中实现导航栏与状态栏显示与隐藏的方法。通过覆盖UIViewController中的三个方法(viewWillAppear、viewWillDisappear 和 viewDidAppear),可以实现在页面出现和消失时动态地隐藏或显示导航栏与状态栏。此外,还需在info.plist文件中设置Viewcontroller-based status bar appearance为NO以确保正确的行为。
4888

被折叠的 条评论
为什么被折叠?



