[self.navigationController setNavigationBarHidden:NO animated:YES]状态栏为什么也会显示
时间: 2023-12-14 12:38:17 浏览: 45
在iOS中,状态栏和导航栏是两个不同的控件。设置导航栏的隐藏状态并不会影响状态栏的显示。如果你想要隐藏状态栏,可以在控制器中添加以下代码:
```
- (BOOL)prefersStatusBarHidden {
return YES;
}
```
这样就可以隐藏状态栏了。如果你想要显示状态栏,只需要将返回值改为NO即可。
相关问题
self.navigationController.navigationBarHidden = NO; 解释代码
这段代码是用于 iOS 开发中的导航栏控制器中的属性设置。具体来说,`self` 是当前视图控制器,`navigationController` 是当前视图控制器所在的导航栏控制器对象。
`navigationBarHidden` 是一个布尔类型的属性,用于控制导航栏是否隐藏。当设置为 `NO` 时,导航栏将会显示出来。
因此,这段代码的作用就是将当前视图控制器所在的导航栏控制器的导航栏显示出来。
我是IOS 只想显示导航栏,而不想显示状态栏我应该用代码怎么实现
你可以在对应的 `ViewController` 中添加以下代码来隐藏状态栏:
```swift
override var prefersStatusBarHidden: Bool {
return true
}
```
这样就可以隐藏状态栏了,如果你想要恢复状态栏的显示,只需要将返回值改为 `false` 即可。同时,你也需要在 `Info.plist` 文件中添加一个属性 `View controller-based status bar appearance` 并将其值设置为 `YES`,这可以确保你的应用程序在不同的 `ViewController` 中显示或隐藏状态栏。
如果你想要显示导航栏,可以在对应的 `ViewController` 中添加以下代码:
```swift
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.setNavigationBarHidden(false, animated: animated)
}
```
这样就可以在 `ViewController` 中显示导航栏了。