2017-01-18 33 views
0

透明な背景で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) 

2番目のビュー

view.isOpaque = false 
     self.view.backgroundColor = .clear 
+0

あなたはより良いアイデアを得るためにあなたの質問を精緻化できますか? –

答えて

1
の代わりに黒い画面を取得します

色を.clearに設定しているときに表示される黒い画面は、ナビゲーションバーに想像している背景がないため、UIWindowです。これは最初のレイヤーです。バックグラウンドで最初に表示するビューと同じです。したがって、背景色を.clearに設定すると、黒色になります。

私の解決策はnavigationControllerをnavBar(私はsegueを使用してコントローラ間でナビゲーションを行いました)に置き換えて、デフォルトにスタイルを設定し、半透明のボックスをチェックして、アルファ値を0.2などに設定します私が解決しなければならない問題は、アルファがnavigationItemに影響を与えていることです。私が解決策を見つけるなら、私はあなたに知らせるでしょう。

+0

@ankydockyまた、カスタムnavbarでは新しいviewcontrollerのプッシュが許可されません。 – pprevalon