UINavigationBarの透明化
まずは透明化/解除のExtensionを作成
public extension UINavigationBar { /// ナビゲーションバーを透明化する func enableTransparency() { setBackgroundImage(UIImage(), for: .default) shadowImage = UIImage() } /// ナビゲーションバーを透明化を解除する func disableTransparency() { setBackgroundImage(nil, for: .default) shadowImage = nil } }
↑をUIViewControllerのviewWillAppear/viewWillDisappearで呼び出し
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) navigationController?.navigationBar.enableTransparency() } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) navigationController?.navigationBar.disableTransparency() }