如何呈现具有透明背景的UINavigationController
。没有导航栏的常规视图工作正常,但当我将navigationBar
添加到相同的代码时,我得到一个黑屏而不是.clear
主视图控制器
let vc = NewRquestViewController()
vc.modalPresentationStyle = .overCurrentContext
vc.mapView = self.mapView
let nvc = UINavigationController(rootViewController:vc)
self.present(nvc, animated: true, completion: nil)
第二种观点
view.isOpaque = false
self.view.backgroundColor = .clear
答案 0 :(得分:1)
当您将颜色设置为.clear时,您获得的黑色屏幕是UIWindow,因为navigationBar没有您想象的背景。它是第一层 - 与您为背景放置的第一个视图相同 - 因此,将背景颜色设置为.clear将导致黑色。
我的解决方案是使用navBar替换navigationController(我使用segue在控制器之间进行导航)并将其设置为默认,检查半透明框并将alpha设置为0.2或类似的,我唯一要解决的问题是alpha影响了navigationItem,我不知道如何处理它。如果我找到解决方案,我会告诉您。