UIPrintInteractionController和UIAppearance的navigationBar

时间:2013-07-03 23:27:04

标签: ios cocoa-touch uiappearance

我使用UIAppearance设置我应用中所有NavigationBar的backgroundImage。

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

同时我使用UIPrintInteractionController来实现打印功能。

问题是打印对话框为其导航栏使用全局外观设置。 它看起来像这样:

enter image description here

在这个对话框中,它不合适,我不想在这里使用任何背景图像并有一个系统对话框。

我试过用 [UINavigationBar appearanceWhenContainedIn:[UIPrintInteractionController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; ,但应用程序崩溃时显示此消息:UIPrintInteractionController does not conform to the UIAppearanceContainer protocol

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

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

1 个答案:

答案 0 :(得分:2)

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

[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]