ios - 转换后iOS状态栏背景变黑
问题描述
我正在从 UINavigationController 内的 VC1 推送到 VC2。VC2 有一个透明的导航栏。
在 VC2 内部的 viewDidLoad 中:
self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.barTintColor = .clear
self.navigationController?.navigationBar.backgroundColor = .clear
当我按下后退按钮时,我想恢复导航栏(绿色),所以在 viewWillDissapear 里面我有以下内容:
self.navigationController?.navigationBar.isTranslucent = false
self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
self.navigationController?.navigationBar.barTintColor = .green
self.navigationController?.navigationBar.backgroundColor = .green
但是我在转换时得到了这个奇怪的黑色状态栏:
解决方案
你可以试试下面,
override func viewDidLoad() {
super.viewDidLoad()
UINavigationBar.appearance().backgroundColor = .clear
UINavigationBar.appearance().barTintColor = .clear
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
}
和
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UINavigationBar.appearance().backgroundColor = .green
UINavigationBar.appearance().barTintColor = .green
self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
}
推荐阅读
- c# - 将不同类别作为财产的最佳方法
- rest - 从 Go 代码使用 API 时出现 401 错误,而 cURL 运行良好
- reactjs - 如何在 React 中添加一个可以支持数学方程式的 markdown 编辑器?
- c# - Xamarin 从列表 ObservableCollection 和列表视图表单中删除项目
- javascript - 如何在我的项目中正确重新计算停止和恢复动画计算
- python - 表有多个主键 Django
- sqlite - 从 SQLite 数据库中检索 Int 值
- mysql - Laravel 多次更新慢
- python - 在 Pytest 中使用本地导入
- css - 将所有 angular .styl 文件转换为普通的 scss 或 css