Настройка пользовательского фона для UINavigationBar для поддержки iOS5 и iOS4!
Как вы знаете, до выхода iOS 5 мы использовали drawRect
override в AppDelegate
настроить UINavigationBar
.Но знайте, iOS 5 дает нам новый метод для стилизации (а старый не работает).
Как создать приложение, которое будет работать на iOS 4 и iOS 5 со стилизованным UINavigationBar
?
Вы должны сделать оба!
В AppDelegate
использовать этот код:
@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
UIImage *img = [UIImage imageNamed:@"navbar.png"];
[img drawInRect:rect];
}
@end
и метод viewDidLoad
для iOS5 (в вашей реализации реализации):
if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar.png"] forBarMetrics:UIBarMetricsDefault];
}
Если вы видите, здесь мы спрашиваем, будет ли navbar отвечать toSelector, чтобы избежать сбоя на iOS4!