我使用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
。
第二个想法是将navigationBar的backgroundImage设置为UIPrintInteractionController
的nil,例如,当它被初始化时,或者在它被显示之前(在委托方法中)。但是UIPrintInteractionController
没有公共方法来获取它的navigationBar,而且它继承自NSObject
。
有没有办法摆脱UIPrintInteractionController
的导航栏中的背景图片?
答案 0 :(得分:2)
你可以利用这个控制器在UIPopoverController中呈现的事实,它支持UIAppearance包含:
[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]