Я пытаюсь установить пользовательский цвет для кнопки на моем UINavigationBar, но только когда в нем отображается определенный UIViewController (я знаю, что это сомнительный дизайн пользовательского интерфейса, но это определенное требование клиента).
В нашей текущей реализации Swizzle используется для переопределения drawRect
для всех UINavigationBar
объектов.Это необходимо, чтобы наши пользовательские цвета панели навигации применялись к стандартным экранам iOS (например, при добавлении нового контакта через стандартные API-интерфейсы).
Я хочу изменить цвет оттенка панели навигации для одного конкретного UIViewController, чтобы он былотличается от других, но Swizzle всегда имеет приоритет.
Я тестирую в iOS 4.3 Simulator.Мы поддерживаем клиенты iOS 3.x и выше (iPhone, iPod и iPad), поэтому я не могу просто использовать новые API iOS 5 для его настройки.
Другие вещи, которые я пробовал, безуспешно:
Добавление setStyle
вызовов (согласно этому обходному пути ) для повторного обновления кнопки.
Я попытался взломать UINavigationButton
Я нашел здесь (я знаю, что это частный API и рискует, что Apple отклонит приложение).Я также пытался вставить этот код в viewWillAppear
.