1つのNavigationControllerに複数のVCが埋め込まれています。 私は1つのVCを持っています、VCNotTransparentという名前をつけて、バーは透明でないようにしてください。他のVCでは透明にします。 だからメインのVCで、私はバーの透明化のためにこれらの行を追加しました:Swift - 既存のものを上書きするナビゲーションバーを追加する
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.isTranslucent = true
は、だから今、私のバーのすべてのアプリで透明です。 VCNotTransparentを他のVCのすべてを変更せずに透明にできないようにするにはどうすればよいですか?私が考えた解決策の1つは、VCNotTransparentにのみ新しいナビゲーションバーを追加することですが、その方法はわかりません。
EDIT
私もほとんど機能し、独自のNavigationControllerでVCNotTransparentを埋め込むしようとしたが、問題は、私はいくつかの他のVCのにからのナビゲーションを持っていることであり、彼らはサブナビゲーションですので、彼らは、同様に透明ではなくなりますVCNotTransparentの列挙型によって
これはソリューションの良い方向に見えますが、私はそれを感謝します。受け入れられたとマークするのに欠けていることの1つは、透明でないコードが何であるか分かりません(func setupNav内...)。私は背景を透明にするために空のイメージを使用していたので、透明でない状態に戻す方法がわかりません。 – Sharonica
これはあなたに役立つかもしれません。http://stackoverflow.com/questions/42332547/swift-3-how-to-reverse-a-transparent-navigation-bar –
ありがとう、それは少し助けますが、それは問題は、透過的でない透明なバーに戻るときに、バーはただ遅れて透明になります(vcライフサイクルで正しい関数に変更を加えたとしても) – Sharonica