2

UIAppearanceアプリですべての の backgroundImage を設定するために使用しNavigationBarます。

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"background.png"] forBarMetrics:UIBarMetricsDefault];

同時に、UIPrintInteractionController印刷機能を実装するために使用します。

問題は、印刷ダイアログがナビゲーション バーのグローバルな外観設定を使用することです。次のようになります。

ここに画像の説明を入力

このダイアログでは適切ではありません。ここでは背景画像を使用せず、システム ダイアログを使用したいと考えています。

を使用しようとしました [UINavigationBar appearanceWhenContainedIn:[UIPrintInteractionController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; が、次のメッセージが表示されてアプリがクラッシュします: UIPrintInteractionController does not conform to the UIAppearanceContainer protocol

2 番目のアイデアは、navigationBar の backgroundImage を nil に設定するUIPrintInteractionControllerことでした。たとえば、初期化されるとき、または (デリゲート メソッドで) 表示される前です。ただしUIPrintInteractionController、ナビゲーション バーを取得するためのパブリック メソッドはなく、さらにNSObject.

のナビゲーション バーの背景画像を取り除く方法はありUIPrintInteractionControllerますか?

4

1 に答える 1

2

このコントローラーが UIAppearance コンテインメントをサポートする UIPopoverController で提供されるという事実を利用できます。

[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]
于 2013-07-04T19:13:41.653 に答える