cyr*_*ril 7 uinavigationbar ios swift
我有一个prefersLargeTitles设置为的导航栏True。单击表格视图中的单元格以显示详细信息视图时,我希望导航栏使用以下方法变得透明,这很好用:
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
Run Code Online (Sandbox Code Playgroud)
当按下详细视图上的后退按钮返回主视图控制器时,我调用:
self.navigationController?.navigationBar.setBackgroundImage(nil, for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = nil
Run Code Online (Sandbox Code Playgroud)
不幸的是,导航栏的阴影视图不会返回如下所示。我错过了什么?
这在 Xcode 10.1、iOS 12.1 中对我有用。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// 1. hide it in the current view controller you want it hidden in
navigationController?.navigationBar.setValue(true, forKey: "hidesShadow")
navigationController?.navigationBar.layoutIfNeeded()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(true)
// 2. show it in when pushing or popping in the next view controller
navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
navigationController?.navigationBar.setValue(false, forKey: "hidesShadow")
navigationController?.navigationBar.layoutIfNeeded()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |