如何在IPhone应用程序的UINavigationBar中添加图像

如何在IPhone应用程序的UINavigationBar中添加图像,iphone,objective-c,uinavigationcontroller,uiimage,uinavigationbar,Iphone,Objective C,Uinavigationcontroller,Uiimage,Uinavigationbar,在我的应用程序中,我想在导航栏中添加图像(徽标)。我正在使用XCode 4.2和iOS 5 我知道,UINavigationBar,UIToolBar在iOS 5中已被更改。因此,iOS 4.2UINavigationBarcode在iOS 5中不起作用 我想在4.2和5版本中都支持在UINavigationBar中显示图像 我想在UINavigationBar中显示图像,如下面的屏幕截图所示 请在这方面提供帮助,如果有任何示例代码意味着它对我非常有帮助 谢谢 一种方法是使用UINavigat

在我的应用程序中,我想在导航栏中添加图像(徽标)。我正在使用XCode 4.2和iOS 5

我知道,
UINavigationBar
UIToolBar
在iOS 5中已被更改。因此,iOS 4.2
UINavigationBar
code在iOS 5中不起作用

我想在4.2和5版本中都支持在
UINavigationBar
中显示图像

我想在
UINavigationBar
中显示图像,如下面的屏幕截图所示

请在这方面提供帮助,如果有任何示例代码意味着它对我非常有帮助


谢谢

一种方法是使用
UINavigationItem.titleView
UINavigationItem.rightbuttonItem
。像这样:

viewController.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage.png"]];
UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage2.jpg"]]];    
viewController.navigationItem.rightBarButtonItem = item;    

这里我使用
UIImageView
作为自定义视图,但它可以是带有自定义图像的
UIButton

另一种方式,而不使用viewController

// Create your image
UIImage *image = [UIImage imageNamed: @"logo.png"];
UIImageView *imageview = [[UIImageView alloc] initWithImage: image];

// set the image view to the title view
self.navigationItem.titleView = imageview;
Swift版本: 您可以创建协议扩展,以便在视图控制器中使用该函数

protocol Customizable {
    var navigationItem: UINavigationItem { get }
}

extension Customizable {
    func setNavBarLogo() {

        let logo = UIImage(named: "logo")
        let logoImageView = UIImageView(image: logo)

        self.navigationItem.titleView = logoImageView
    }
}

这对iOS4和iOS5都有效吗?您想添加的是
clingle
徽标,而不是UINavigationbar的背景图像吗?至少在模拟器上是这样。我看不出有什么理由不这样做。我不明白你的第二个问题。谢谢。但我注意到您的示例中没有发布item对象。我使用的是ARC…:)@MartinReichla只是不,你不应该说@“youtimage.png”@“yourimage”就足够了,iOS将找到要加载的正确映像。