Я использую UIAppearance
для установки backgroundImage всех NavigationBar
в моем приложении.
[[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 панели навигации в nil для UIPrintInteractionController
, например, когда он инициализируется или перед его отображением (в методе делегата). Но у UIPrintInteractionController
нет публичных методов для получения панели навигации, и, кроме того, он наследуется от NSObject
.
Есть ли способ избавиться от фонового изображения в панели навигации UIPrintInteractionController
?