2014-12-29 2 views
0

как создать uinavigationbar как изображение в прошивке, http://i.stack.imgur.com/253QR.pngПользовательские UINavigationBar не работают

Я попытался

UIImage *navBackgroundImage = [UIImage imageNamed:@"Navi.png"]; 
[[UINavigationBar appearance] setBackgroundImage:navBackgroundImage forBarMetrics:UIBarMetricsDefault]; 
+0

Прежде всего, я действительно не знаю, как вы можете реализовать эту большую навигационную панель большого размера. Во-вторых, вы используете автономный UINavigationBar или UINavigationController UINavigationBar? Если во-вторых, я изменил его backgroundImage слишком много раз. Я могу поделиться своим кодом. –

+0

Я использую UINavigationController UINavigationBar, , как я могу наложить другие виды в свой UIViewController. –

+0

Все настройки необходимо применять в контроллере родительского представления, прежде чем нажимать контроллер целевого представления. Пожалуйста, проверьте... – byJeevan

ответ

0

Ok. Проблема в том, что любой контроллер не может напрямую изменять UINavigationBar UINavigationController. Он должен быть изменен с помощью UINavigationController. Я рекомендую создать пользовательский UINavigationController.

Предположим, что имя имя пользовательского UINavigationController является NavController:

@interface NavController() 

@end 

@implementation NavController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UIImage *navBackgroundImage = [UIImage imageNamed:@"Navi.png"]; 
    [self.navigationBar setBackgroundImage:navBackgroundImage] forBarMetrics:UIBarMetricsDefault]; 
    [self.navigationBar setTranslucent:NO];//you can change this 
    self.navigationBar.tintColor = [UIColor colorWithWhite:1 alpha:1];// you can change this too 
} 

@end 

Я устанавливал класс раскадровке в UINavigationController к NavController. Это самый простой способ изменить весь фон UINavigationBars на любых контроллерах. Если вы хотите изменить фон любого конкретного контроллера использовать это (слишком долго не используется, может быть неправильным, но что-то вроде этого.):

UIImage *navBackgroundImage = [UIImage imageNamed:@"Navi.png"]; 
[self.navigationController.navigationBar setBackgroundImage: navBackgroundImage forBarMetrics:UIBarMetricsDefault]; 

Хорошо, я только что посмотрел в мои старые коды. Это должно быть правильно.

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