我使用UIAppearance来设置应用程序中所有NavigationBar的backgroundImage。
[[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。
第二个想法是将UIPrintInteractionController的navigationBar的backgroundImage设置为nil,例如,当它被初始化时,或者在它被显示之前(在委托方法中)。但是UIPrintInteractionController没有公共方法来获取它的navigationBar,而且它继承自NSObject。
有没有办法去掉UIPrintInteractionController导航栏中的背景图片?
发布于 2013-07-05 03:13:42
您可以利用这样一个事实,即此控制器是在支持UIAppearance容器的UIPopoverController中提供的:
[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]https://stackoverflow.com/questions/17459709
复制相似问题