Я устанавливаю пользовательские изображения для своих UINavigationBar
и UIToolbar
, используя следующий код:
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationBar"] forBarMetrics:UIBarMetricsDefault];
[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"toolbar"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
Я использую PhotoViewer и выдвигаю его контроллер представления в поле зрения. Он должен иметь полупрозрачную панель навигации и панель инструментов, но вместо этого он использует графику, которую я поставил с полупрозрачностью.
Проблема в том, что позже, когда я нажимаю другой контроллер представления (после возврата к super из PhotoViewer), его панель инструментов также становится полупрозрачной, что означает, что содержимое находится за ней.
Я пробовал следующее без везения:
[[UINavigationBar appearanceWhenContainedIn:[EGOPhotoViewController class], nil] setBarStyle:UIBarStyleBlackTranslucent];
[[UINavigationBar appearanceWhenContainedIn:[EGOPhotoViewController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[[UIToolbar appearanceWhenContainedIn:[EGOPhotoViewController class], nil] setBarStyle:UIBarStyleBlackTranslucent];
[[UIToolbar appearanceWhenContainedIn:[EGOPhotoViewController class], nil] setBackgroundImage:nil forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
Любые идеи, как я могу получить черный полупрозрачный barStyle только для PhotoViewer и сохранить все остальное с моей пользовательской графикой?
ОБНОВЛЕНИЕ: в попытке получить помощь я собрал пример проекта с пользовательской графикой для панели навигации, а затем безуспешно пытался отобразить нажатый контроллер представления с полупрозрачной панелью навигации, когда с использованием прокси внешнего вида: ПРОЕКТ ПРИМЕРА