[iOS] UIKit 100% だったプロジェクトの SwiftUI 化の終わりが近い話(参画時の面談から現在、そして)

どうも、@tobi462 です。

時は遡って、2024年11月にある iOS プロジェクトに参画しました。

そのプロジェクトは Objective-C コードこそ無かったものの、UIKit・RxSwift 100%(つまり SwiftUI や Concurrency のコードは 0)で Coordinator パターンが採用された、今から見ると1世代(あるいは見方によっては2世代)前のコードベースでした。

ナビゲーションバーの背景色・文字色を変更する

SwiftUI では toolbarBackground を使用してナビゲーションバーの背景色をカスタマイズすることができますが、この API は iOS 16+ からしか利用できず、かつ文字色を自由に変更する API は iOS 17 時点でも提供されていません。

この記事では SwiftUI-Introspect を利用して、裏にある UINavigationController にアクセスし、ナビゲーションバーの背景色・文字色を変更する方法について紹介します。