如下代码效果不错:
- (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状态