2015-06-08 6 views
1

Я хочу добавить UIBarButtonItem в свой навигационный контроллер программно как с левой, так и с правой стороны и изменить их оба на другие UIBarButtonItems при нажатии. А также я хочу использовать свои иконки. Я могу это сделать? Его моя вторая неделя в программировании IOS извините, если его простой вопросКак я могу добавить UIBarButtonItem в контроллер навигации программно?

ответ

6

с изображением:

self.navigationItem.setLeftBarButtonItem((UIBarButtonItem(image:UIImage(named:"image"), style: .Plain, target:self, action:"action:")), animated: false) 

С заглавием:

self.navigationItem.setLeftBarButtonItem((UIBarButtonItem(title:"backButton", style: .Plain, target:self, action:"back_pressed:")), animated: false) 

Кроме того, вы можете назначить несколько элементов для каждой из сторон:

var test: UIBarButtonItem = UIBarButtonItem(image: UIImage(named:"test"), style: UIBarButtonItemStyle.Plain, target: self, action: "test1:") 
var test2: UIBarButtonItem = UIBarButtonItem(image: UIImage(named:"test2"), style: UIBarButtonItemStyle.Plain, target: self, action: "test2:") 
navigationItem.rightBarButtonItems = [test1, test2] 

При использовании нескольких предметов, которые могут вас заинтересовать:

var spacing : UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil) 

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

+0

спасибо много) я создал левую и правую кнопку. но как я могу изменить их на другие кнопки после действия? – compbealov

+0

вы можете изменить элемент так же, как вы его добавили к навигации в представлении, загрузили - вы сказали, что можете использовать self.navigationItem.setLeftBarButtonItem ((UIBarButtonItem (название: «backButton», style: .Plain, target: self, action: «back_pressed:»)), анимированный: false) с различными параметрами. – Miknash

0

попробовать это code-

self.title = "Title" 

var left : UIBarButtonItem = UIBarButtonItem(title: "LeftButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "") 

var right : UIBarButtonItem = UIBarButtonItem(title: "RigthButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "") 

self.navigationItem.leftBarButtonItem = left 
self.navigationItem.rightBarButtonItem = right 
1

Objective-C версии

UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"close"] style:UIBarButtonItemStylePlain target:self action:@selector(back:)]; 
    self.navigationItem.leftBarButtonItem = closeButton; 

    //OR 

    UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithTitle:@"Close" style:UIBarButtonItemStylePlain target:self action:@selector(back:)]; 
    self.navigationItem.leftBarButtonItem = closeButton; 
Смежные вопросы