2013-07-03 2 views
2

Я использую UIAppearance для установки backgroundImage из всех NavigationBar s в моем приложении.navigationBar of UIPrintInteractionController и UIAppearance

[[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.

Вторая идея заключалась в том, чтобы установить backgroundImage of navigationBar на nil для UIPrintInteractionController, например, когда он инициализируется или пока он не показан (в методе делегата). Но UIPrintInteractionController не имеет общедоступных методов, чтобы получить его navigationBar, и, кроме того, он наследует от NSObject.

Есть ли способ избавиться от фонового изображения в навигационной панели UIPrintInteractionController?

+0

Попробуйте с помощью: <- язык: Objective-C -> [UINavigationBar appearanceWhenContainedIn: [UIPopoverController class], nil] –

+0

@ robert.wijas Спасибо, он работает. Я соглашусь, если вы опубликуете его как ответ. – Anastasia

+0

Я сделал это, но кто-то обратил его в комментарий. Повторное отправление в качестве ответа. –

ответ

2

Вы можете воспользоваться тем, что этот контроллер представлен в UIPopoverController, который поддерживает UIAppearance локализации:

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

Пробовал и не работает: [[UINavigationBar appearanceWhenContainedIn: [UIPopoverController class], nil] setTintColor: [UIColor blueColor]]; –

+0

это сработало для меня .. спасибо –

Смежные вопросы