use*_*136 42 iphone objective-c uinavigationbar uiimage uinavigationcontroller
在我的应用程序中,我想在导航栏中添加图像(徽标).我正在研究XCode 4.2和iOS 5.
我知道UINavigationBar,UIToolBar在iOS 5中已经改变了.所以iOS 4.2 UINavigationBar代码在iOS 5中不起作用.
我想UINavigationBar在4.2和5版本中支持显示图像.
我想像UINavigationBar下面的截图一样显示图像.

请帮忙解决这个问题,如果有任何示例代码意味着它对我很有帮助.
谢谢!!!
bar*_*ley 78
一种方法是使用UINavigationItem.titleView和UINavigationItem.rightBarButtonItem.像这样 :
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;
Run Code Online (Sandbox Code Playgroud)
这里我UIImageView用作自定义视图,但它可以UIButton使用自定义图像.
mik*_*396 33
另一种不使用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;
Run Code Online (Sandbox Code Playgroud)
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
}
}
Run Code Online (Sandbox Code Playgroud)