将背景设置为透明后的iOS UINavigationController显示黑屏
Posted
技术标签:
【中文标题】将背景设置为透明后的iOS UINavigationController显示黑屏【英文标题】:iOS UINavigationController after setting background to transparent shows black screen 【发布时间】:2018-04-26 13:42:22 【问题描述】:UINavigationController
遇到了一个非常奇怪的问题。
我正在尝试在UINavigationController
中呈现不透明的UIViewController
,并且我想看到之前模糊的控制器内容。
我将 alpha 设置为 UIViewController
视图:
view.alpha = 0.9
然后我尝试摆脱UINavigationController
背景:
navigationController?.view.backgroundColor = .clear
最初在UINavigationController
动画过渡期间一切看起来都很好,但在动画结束后UINavigationController
背景变成黑色。此问题仅在颜色透明时存在。
也许其他人遇到过这个问题?
【问题讨论】:
不,这个问题与 UIViewController 在导航控制器中的内容定位无关。我特别询问设置导航控制器背景(而不是导航栏背景)。 为此,您应该重写 UINavigationController 并将其view
的backgroundColor
设置为awakeFromNib
。
【参考方案1】:
如果您以模态方式显示导航控制器,请尝试将其 modalPresentationStyle 设置为 .overFullScreen
【讨论】:
这部分解决了我的问题,但是我不想使用 modalPresentationStyle。但我会弄清楚的。谢谢!以上是关于将背景设置为透明后的iOS UINavigationController显示黑屏的主要内容,如果未能解决你的问题,请参考以下文章