目的

iOS15にアップデートした際、
ナビゲーションバーの色やテキスト色が黒に自動で変わってしまった時の対応方法です。





環境

  • Xcode Version 13.1
  • Swift 5

参照サイト

Qiita [Xcode]Xcode13へアップデート後に発生したNavigationBarの不具合の対処法
Developer scrollEdgeAppearance





対応メモ

iOS15よりナビゲーションバーの設定の際は、scrollEdgeAppearanceの設定も行う必要があるようです。
自分の環境では1箇所設定するだけでアプリ全体に反映されました。

なので、func application(_ application: UIApplication, didFinishLaunchingWithOptions...
内で以下を設定しました。

UINavigationBar.appearance().standardAppearance = appearancescrollEdgeAppearanceがnullの時に設定する必要があるようですが、
今回の自分の環境では不要でした。

一応記載しておきます。

iOS15のナビゲーションバー対応
if #available(iOS 15.0, *) {
    let appearance = UINavigationBarAppearance()
    appearance.backgroundColor = appColor()
    appearance.titleTextAttributes = [
        .foregroundColor: UIColor.white
    ]
    UINavigationBar.appearance().scrollEdgeAppearance = appearance
//            UINavigationBar.appearance().standardAppearance = appearance
}