次のコードを使用してUINavigationBar
カスタムイメージを設定しています。UIToolbar
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationBar"] forBarMetrics:UIBarMetricsDefault];
[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"toolbar"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
私はPhotoViewerを使用しており、そのビュー コントローラーをビューにプッシュしています。半透明のナビゲーションバーとツールバーが必要ですが、代わりに私が提供した半透明のグラフィックを使用しています。
問題は、後で別のビュー コントローラーをプッシュしたときに (PhotoViewer からスーパーに戻った後)、そのツールバーも半透明であり、コンテンツがその背後にあることを意味します。
私は運なしで次のことを試しました:
[[UINavigationBar appearanceWhenContainedIn:[EGOPhotoViewController class], nil] setBarStyle:UIBarStyleBlackTranslucent];
[[UINavigationBar appearanceWhenContainedIn:[EGOPhotoViewController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[[UIToolbar appearanceWhenContainedIn:[EGOPhotoViewController class], nil] setBarStyle:UIBarStyleBlackTranslucent];
[[UIToolbar appearanceWhenContainedIn:[EGOPhotoViewController class], nil] setBackgroundImage:nil forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
PhotoViewer のためだけに黒い半透明の barStyle を実現し、カスタム グラフィックスで他のすべてを保持する方法はありますか?
更新:ヘルプを得るために、ナビゲーション バーのカスタム グラフィックを使用してサンプル プロジェクトを作成し、外観プロキシを使用するときに半透明のナビゲーション バーでプッシュされたビュー コントローラーを表示しようとしましたが、成功しませんでした: サンプルプロジェクト