изменить 3 фона панели навигации с другим изображением - PullRequest
1 голос
/ 02 декабря 2010

У меня есть 3 контроллера навигации, и я хочу изменить каждый фон, используя другое изображение. Я реализовал категорию, которая расширяет UINavigationBar следующим образом:

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

@ конец

, но все навигационные панели имеют одинаковое фоновое изображение. И тогда я пытаюсь реализовать код, подобный этому:

- (void)viewDidLoad {
[super viewDidLoad];
self.navigationController.navigationBar.tintColor = [UIColor blackColor];
UIImageView *backGroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]];
[self.navigationController.navigationBar insertSubview:backGroundView atIndex:0];
[backGroundView release];

}

в каждом контроллере, но на каждом фоне просто отображается tintColor, а не изображение ... что мне делать ???

и как, если я тоже хочу это сделать в tabbarController ??

1 Ответ

0 голосов
/ 02 декабря 2010

На каждом из ваших представлений реализуйте следующее в вашем viewWillAppear: методе

#import <QuartzCore/QuartzCore.h>
...

- (void)viewWillAppear:(BOOL)animated 
{
     self.navigationController.navigationBar.layer.contents = (id)[UIImage imageNamed:@"yourImageBgHere"].CGImage;
}

Cheers, Rog

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...