В настоящее время в моем приложении есть панель навигации с пользовательским изображением для фона.Я реализовал это, используя технику категории.Примерно так:
@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed: @"NavigationBar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
Полагаю, что можно также использовать метод Swizzling, но из всего, что я прочитал, это не очень хороший подход, поскольку изменения UIKit повредят мой код.Проблема, с которой я столкнулся, заключается в изменении фонового изображения, когда новые контроллеры представления выталкиваются из стека.Кажется, я могу изменить изображение, когда они выдвигаются, но когда я открываю контроллер представления, я не могу изменить изображение обратно.Можно ли как-то прослушать, когда пользователь нажимает кнопку назад на навигационном контроллере и инициирует изменение изображения в этой точке?Также любопытно, не одобряет ли Apple подобную практику.