2

我用来在我的应用程序中设置所有 s 的UIAppearancebackgroundImage 。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

第二个想法是将 navigationBar 的 backgroundImage 设置为 nil UIPrintInteractionController,例如当它被初始化时,或者在它显示之前(在委托方法中)。但是UIPrintInteractionController没有公共方法来获取它的 navigationBar,而且它继承自NSObject.

有没有办法摆脱导航栏中的背景图像UIPrintInteractionController

4

1 回答 1

2

您可以利用这个控制器在支持 UIAppearance 包含的 UIPopoverController 中呈现的事实:

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