【发布时间】:2018-06-20 19:13:56
【问题描述】:
我想分别控制显示和隐藏NavigationBar 和StatusBar 或我的应用程序中的每个屏幕。
在 iPhone6、iPhone7 和 iPhone8 上,没问题。
但在 iPhoneX 上,当显示NavigationBar 时,即使prefersStatusBarHidden 设置为 YES,StatusBar 也会一起显示。
而NavigationBar的高度比StatusBar的高
如果你能告诉我一个好的解决方案,我将不胜感激。
谢谢。
我的代码如下,
FirstViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = UIColor.yellowColor;
self.navigationController.navigationBarHidden = YES;
} }
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationController.navigationBarHidden = YES;
}
- (void)touchUpButton:(UIButton *)button
{
SecondViewController *vc = [[SecondViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
}
- (BOOL)prefersStatusBarHidden
{
return YES;
}
SecondViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBarHidden = NO;
self.navigationItem.title = @"SecondView";
self.view.backgroundColor = UIColor.cyanColor;
}
- (void)viewWillAppear:(BOOL)animated
{
self.navigationController.navigationBarHidden = NO;
}
- (BOOL)prefersStatusBarHidden
{
return YES;
}
【问题讨论】:
标签: ios objective-c uinavigationbar statusbar navigationbar