无法将背景图像设置为UINavigationController

时间:2012-02-21 22:55:35

标签: iphone uinavigationcontroller

我在项目中添加了图片。奇怪的是,在文件系统上它位于应用程序的根目录中,而在XCode中的项目浏览器中,我将它放在/Images/navbar-bg.png中。如何使这一致?

顺便说一下,我希望将它作为背景图像添加到我的UINavigationController中。这是代码,但我看不到默认蓝色背景的变化:

// navigation
navigationController = [[UINavigationController alloc] initWithRootViewController:cardListViewController];
// ps hue: 37, 53, -5
navigationController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"navbar-bg" ofType:@"png"]]];

self.window.rootViewController = navigationController;

我也试过UIImage imageNamed没有结果。我想以编程方式进行,我不在这里使用任何xib。

由于

3 个答案:

答案 0 :(得分:1)

您在XCode项目资源管理器中看到的那些看起来很黄色的文件夹图标实际上并不代表文件夹;他们是groups。当然,您可以将文件移出Images子文件夹以使其保持一致,但我认为您想要反过来。

要向项目添加项目并让它们保留其源文件夹名称,您必须创建“文件夹引用”。在“添加文件...”对话框中,选择“为任何添加的文件夹创建文件夹引用”单选按钮。你会得到一个蓝色文件夹图标而不是黄色图标;该文件夹中的所有项目都将添加到您的项目中,只要您更改该文件夹的内容,构建的可执行文件就会匹配其内容。

......然后,你问了第二个问题......

在iOS 5中,要将图像添加到导航栏,请使用UINavigationBar:setBackgroundImage

答案 1 :(得分:0)

如果它是导航控制器的背景颜色,则导航控制器中显示的任何控制器都将显示在其上。这意味着它永远不可见。你看到的是cardlistcontroller,你必须在这个控制器上设置背景图像。

答案 2 :(得分:0)

试试这个, 在viewDidload方法中编写此代码。多数民众赞成

UINavigationBar *navigationBar = self.navigationController.navigationBar;
UIImage *image = [UIImage imageNamed: @"NavBar-Wood.png"];
[navigationBar setBackgroundImage:image forBarMetrics: UIBarMetricsDefault];
self.navigationController.navigationBar.tintColor = [UIColor brownColor];

感谢。

相关问题