我一直在定制我应用的导航栏。 我以编程方式添加了导航控制器。 实际上,在我的应用委托的方法 application:didFinishLanchingWithOptions 中, 我使用以下代码添加并隐藏了导航栏:
self.window.rootViewController = self.viewController;
// ListingNav previously declared as instance variable
self.ListingNav = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.ListingNav.navigationBarHidden = YES;
[self.window addSubView:ListingNav.view];
[self.window makeKeyAndVisible];
return YES;
现在,我想将图像设置为导航栏背景,为“后退”按钮设置另一个背景图像,并在同一导航栏的右侧添加另一个按钮以及其自己的背景图像。有关如何进行的任何想法?
求助,
的Stephane
答案 0 :(得分:2)
您可以尝试:
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed: @"ImageNameWithOutExtension"] forBarMetrics: UIBarMetricsDefault];
答案 1 :(得分:1)
子类UINavigationBar并覆盖其drawRect方法以绘制图像。
如果您通过InterfaceBuilder创建了UINavigationController,则可以轻松更改关联的UINavigationBar的类。如果您通过代码创建UINavigationController,则可以使用object_setClass
。 (this one for example)
StackOverflow上有一个很多的问题已经在完全相同的主题上,请不要犹豫,在网站上搜索“NavigationController背景”。
答案 2 :(得分:1)
您可以自定义导航栏而不隐藏它。只需使用addSubview方法添加这些组件。
可以按如下方式添加背景图像:
UIImageView *imageview = [[UIImageView alloc] initWithImage: [UIImage imageNamed: @"bg.png"]];
[self.navigationController.navigationBar addSubview:imageview];
[self.navigationController.navigationBar sendSubviewToBack:imageview];
[imageview release];
由于您需要自定义按钮,因此可以以相同方式添加UIButton。创建一个具有自己背景的新UIButton并添加它。
答案 3 :(得分:0)
使用此代码.....
[self.navigationController.navigationBar setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@""]]];