【问题标题】:navigationBar of UIPrintInteractionController and UIAppearanceUIPrintInteractionController 和 UIAppearance 的 navigationBar
【发布时间】:2013-07-03 23:27:03
【问题描述】:

我使用UIAppearance 在我的应用程序中设置所有NavigationBars 的背景图像。

[[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导航栏中的背景图片?

【问题讨论】:

  • 尝试使用: [UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil]
  • @robert.wijas 谢谢,它有效。如果您将其发布为答案,我会接受。
  • 我这样做了,但有人将其转换为评论。再次发布作为答案。

标签: ios cocoa-touch uiappearance


【解决方案1】:

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

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

【讨论】:

  • 试过了,还是不行:[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil] setTintColor:[UIColor blueColor]];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-26
  • 1970-01-01
  • 2012-06-13
  • 2012-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多