2012-04-15 2 views
2

меняет UINavigationBar фоновое изображение с перегруженным методомфон Изменения UINavigationBar изображения по умолчанию - IOS 4.3

@implementation UINavigationBar (Background) 
-(void) drawRect:(CGRect)rect 
{ 
    UIImage *image = [UIImage imageNamed:@"Header.png"]; 
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
} 

@end 

Но в некотором UIViewControllers мне нужно, чтобы удалить это фоновое изображение. Как я могу это сделать?

+0

Вы подклассифицируете UINavigationBar? – Otium

+0

Нет, я обновил свой код. –

ответ

2

Вы можете посмотреть на this blog post from Sebastian Celis. Это точно решает проблему вашей стороны.

И, возможно, также проверьте this.

+0

Нет, он объясняет, как реализовать подкласс UINavigationBar и как изменить изображения UINavigationBar в ландшафтном и стандартном режимах. Я знаю, как это сделать. Мне нужно вернуть UINavigationBar в UIBarStyleDefault. Простой метод: \t self.navigationController.navigationBar.barStyle = UIBarStyleDefault; не помогает –

+0

Вам нужно подклассифицировать UINavigationBar, а не создавать его категорию – Otium

0

тест таким образом

+ (void)setNavigationbarBackground:(UINavigationBar *)nBar imageName:(NSString *)imgName { 
    if([nBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) { 
     [nBar setBackgroundImage:[UIImage imageNamed:imgName] forBarMetrics:UIBarMetricsDefault]; 
    } else { 
     [nBar setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:imgName]]]; 
    } 
} 
+0

Я знаю, как настроить мой навигатор. Мне нужно отменить это действие –

+0

oops Я ошибся, извините – WhiteTiger

+2

тест таким образом, работает для меня. [nBar setBackgroundImage: nil forBarMetrics: UIBarMetricsDefault]; – WhiteTiger

Смежные вопросы