2013-04-29 114 views
2

现在我试图用我的自定义图像更改UINavigationController背景图像。UINavigationController背景颜色变化,隐藏iOS中的后退按钮

我可以更改以下代码。

[navigation.navigationBar insertSubview:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"navController.png"]] atIndex:1]; 

所以我有下面的图片。该图是正确的,并显示BarButton

enter image description here

但是当我去detailViewController,没有BackButton。但是,我可以不看就看到它。

当我回到MainViewController后,我的UINavigationController背景像下面的图片一样发生。

enter image description here

他们都躲在我的按钮。我在考虑atIndex:1正在解决此问题,因为索引1高于0,并且所有按钮索引必须是0

这就是为什么所有按钮都消失了。

那么我该如何解决这个问题呢?请帮忙。

感谢您的帮助。

+1

你为什么不使用'了setBackgroundImage:forBarMetrics :'?请参阅[doc](http://developer.apple.com/library/ios/documentation/uikit/reference/UINavigationBar_Class/Reference/UINavigationBar.html#//apple_ref/occ/instm/UINavigationBar/setBackgroundImage:forBarMetrics :) – tkanzakic 2013-04-29 15:06:56

+0

哦。你是对的。我忘了用那个..非常感谢你。 :)请与答案一起。我会打勾你的。 – 2013-04-29 15:08:51

回答

2
// not supported on iOS4 
UINavigationBar *navBar = [purchaseNavController navigationBar]; 
if ([navBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) 
{ 
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"brnlthr_nav.jpg"] forBarMetrics:UIBarMetricsDefault]; 
} 
0

尝试使用外观代理由苹果提供

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"your_image"] forBarMetrics:UIBarMetricsDefault]; 

,将其设置为整个应用程序,也可以使用

[[self.navigationController.navigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"your_image"]];