6

私は、iOS 5のUIAppearance機能を組み込んで、ユニバーサルアプリに独自のテーマを与える作業を行っています。現在、アプリデリゲートにいくつかのコードを実装して、アプリにカスタムナビゲーションバーを提供しています。

UIImage *navBarImage = [[UIImage imageNamed:@"navigationBar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(7, 7, 7, 7)];
[[UINavigationBar appearance] setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];

これはうまく機能し、すべてのナビゲーションバーをAppleのプレーンスタイルから明るいグラデーションに変更します。しかし、私が抱えている問題は、それが私もそれを望まないいくつかのスタイルをオーバーライドしているということです。私の特定の問題は、iPadのUIPopoverControllerのナビゲーションバーの背景を上書きして、醜いユーザーエクスペリエンスを作成することです。修正方法を教えてください。

編集:これはユニバーサルアプリであり、iPadのUIPopoverControllerとiPhone/iPodのモーダルビューから画像ピッカーを開くことに注意してください。モーダルビューではなく、iPadポップオーバーのnavBarのカスタム背景のみを削除したい。

現在の様子: ここに画像の説明を入力してください

私はそれをどのように見せたいですか: ここに画像の説明を入力してください

よろしくお願いします、Guvvy

4

1 に答える 1

14

+appearanceWhenContainedIn:ポップオーバーコントローラーに含まれているナビゲーションバーから背景画像のカスタマイズを削除する方法を使用してみてください。このようなもの:

[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

ナビゲーションバーの背景画像を設定しnilてデフォルトの外観に戻すかどうかは、ドキュメントからは明らかではありません。それが機能しない場合は、逆のアプローチを取り、使用しているポップオーバー以外のコンテナビューコントローラのリストを提供する必要があります。に+appearanceWhenContainedIn:

于 2012-07-04T18:53:45.643 に答える