40

В моем приложении я хочу добавить изображение (логотип) в панель навигации. Я работаю на XCode 4.2 и прошивке 5.Как добавить изображение в UINavigationBar в приложении IPhone

Я знаю UINavigationBar, UIToolBar был изменен в прошивке 5. Так что IOS 4,2 UINavigationBar код не будет работать в прошивке 5.

Я хочу поддержать изображение на дисплей в UINavigationBar в версиях 4.2 и 5.

Я хочу быть образным изображением в UINavigationBar, как показано на рисунке ниже.

Navigation bar image

Пожалуйста, помогите в этом отношении, и если есть какие-либо образец кода означает, что его очень полезно для меня.

Спасибо !!!

ответ

76

Один из способов сделать это - использовать 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;  

Здесь я использую UIImageView как пользовательские точки зрения, но это может быть UIButton с пользовательским изображением.

+0

Будет ли это работать как для iOS4 и 5? и это логотип 'clingle', который вы пытаетесь добавить, а не фоновое изображение для UINavigationbar? – Illep

+0

Как минимум на Симуляторе. И я не вижу причин, по которым это не должно быть. Я не понял ваш второй вопрос. – barley

+0

спасибо. но я заметил, что объект item не был выпущен в вашем примере. –

32

Другим способом без использования 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; 
3

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 
    } 
} 
Смежные вопросы