Swift导航控制器视图与透明背景

时间:2017-01-18 05:39:52

标签: ios swift xcode

如何呈现具有透明背景的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

1 个答案:

答案 0 :(得分:1)

当您将颜色设置为.clear时,您获得的黑色屏幕是UIWindow,因为navigationBar没有您想象的背景。它是第一层 - 与您为背景放置的第一个视图相同 - 因此,将背景颜色设置为.clear将导致黑色。

我的解决方案是使用navBar替换navigationController(我使用segue在控制器之间进行导航)并将其设置为默认,检查半透明框并将alpha设置为0.2或类似的,我唯一要解决的问题是alpha影响了navigationItem,我不知道如何处理它。如果我找到解决方案,我会告诉您。