iOS の UIAppearanceProxy を使用して、アプリの外観をカスタマイズしています。
ほとんどのアプリでは、navBar に 1 つの背景画像を設定します。アプリの特定のセクションで、navBar に別の背景画像を持たせたいと考えています。
これが私がやっていることですapplication:didFinishLaunchingWithOptions:
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbar_bg1"]
forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearanceWhenContainedIn:[DiscoverViewController class], nil] setBackgroundImage:[UIImage imageNamed:@"navbar_bg2"] forBarMetrics:UIBarMetricsDefault];
特定のビュー コントローラーで navBar をオーバーライドするのではなく、すべての外観コードを 1 か所に保持したいと考えています。
上記の DiscoverViewController のように、各タブがサブクラス化された ViewController を所有する NavigationController を制御する TabBarController で、私のアプリが構造化されていることも知っておくと役立ちます。
私は何を間違っていますか?