Я использую UIAppearance
для установки backgroundImage из всех NavigationBar
s в моем приложении.navigationBar of UIPrintInteractionController и UIAppearance
[[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
.
Вторая идея заключалась в том, чтобы установить backgroundImage of navigationBar на nil для UIPrintInteractionController
, например, когда он инициализируется или пока он не показан (в методе делегата). Но UIPrintInteractionController
не имеет общедоступных методов, чтобы получить его navigationBar, и, кроме того, он наследует от NSObject
.
Есть ли способ избавиться от фонового изображения в навигационной панели UIPrintInteractionController
?
Попробуйте с помощью: <- язык: Objective-C -> [UINavigationBar appearanceWhenContainedIn: [UIPopoverController class], nil] –
@ robert.wijas Спасибо, он работает. Я соглашусь, если вы опубликуете его как ответ. – Anastasia
Я сделал это, но кто-то обратил его в комментарий. Повторное отправление в качестве ответа. –