искал это неделю назад. Нашел здесь обсуждения. яблоко. com / thread.jspa? threadID = 1649012 & tstart = 0 (извините, я не могу опубликовать реальную ссылку).
-(void)setBackgroundImage:(UIImage*)image withTag:(NSInteger)bgTag{
if(image == NULL){ //might be called with NULL argument
return;
}
UIImageView *aTabBarBackground = [[UIImageView alloc]initWithImage:image];
aTabBarBackground.frame = CGRectMake(0,0,self.frame.size.width,self.frame.size.height);
aTabBarBackground.tag = bgTag;
[self addSubview:aTabBarBackground];
[self sendSubviewToBack:aTabBarBackground];
[aTabBarBackground release];
}
/* input: The tag you chose to identify the view */
-(void)resetBackground:(NSInteger)bgTag {
[self sendSubviewToBack:[self viewWithTag:bgTag]];
}
Я сделал это как категорию для UINavigationBar. Чтобы установить это фоновое изображение для UINavigationBar внутри UINavigationBarController, я сделал это:
[navigationControllerForChannels.navigationBar setBackgroundImage:[UIImage imageNamed:@"top_bar.png"] withTag:48151623];
У меня были некоторые ошибки при обновлении панели вкладок, поэтому вы хотите позвонить
[self.navigationController.navigationBar resetBackground:48151623];
После любых изменений в баре.