2012-07-04 5 views
6

私は普遍的なアプリケーションにユニークなテーマを与えるために、iOS 5のUIAppearance機能を組み込んでいます。現在、私はアプリのカスタムナビゲーションバーを与えるために私のアプリの委任にいくつかのコードを実装している:UIAppearance UIPopoverControllerのカスタムNavBarの背景を削除する

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のカスタム背景を削除したいだけです。

、それが現在のように見える方法: 私はそれが見えるようにしたいどのようにenter image description here

enter image description here

あなたの助けを事前に感謝し、 Guvvy

答えて

14

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

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

それはnilにナビゲーションバーの背景画像を設定すると問題が解決しない、あなたは逆のアプローチを取らなければならない、と提供することも、デフォルトの場合の外観を、復元するかどうかの文書から明らかではありませんあなたが使用している非ポップオーバーコンテナビューコントローラのリスト+appearanceWhenContainedIn:

+2

これを 'nil'に設定するとジョブが終了しました。あなたの助けをありがとう!私は自分でそれを理解していないとは信じられません。 – Gavy

+0

同じトリックもボタンのために働きます。たとえば、 '[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBarクラス]、[UIPopoverControllerクラス]、nil] setBackgroundImage:nil forState:UIControlStateNormal barMetrics:UIBarMetricsDefault; –

関連する問題