Как добавить правую кнопку в навигационную панель?
У меня есть вопрос, чтобы добавить правую кнопку в навигационной панели..
У меня есть два вида: вид A и вид B
добавить панель навигации для просмотра, после того, как я использовать self.navigationController!.pushViewController
показать вид B.
Это показывает кнопку "Назад" в левой части навигационной панели view B automatic, это хорошо. но теперь я хочу добавить кнопку справа от навигационной панели view B.. Я пробовал некоторые ответы, но это не работает... Я пробовал ответы likes : Один) https://www.hackingwithswift.com/example-code/uikit/how-to-add-a-bar-button-to-a-navigation-bar 2)http://blog.apoorvmote.com/add-multiple-bar-button-item-navigation-bar/?lang=fr
не могли бы вы помочь мне, спасибо !
5 ответов
быстрая версия ответа Ваана Бабаяна, как вы, кажется, используете этот язык:
let rightButtonItem = UIBarButtonItem.init(
title: "Title",
style: .Done,
target: self,
action: "rightButtonAction:"
)
self.navigationItem.rightBarButtonItem = rightButtonItem
следующий метод будет вызываться на self:
func rightButtonAction(sender: UIBarButtonItem)
обратите внимание, что все это можно установить графически с помощью раскадровки, перетащив элемент кнопки панели в навигационный элемент и щелкнув правой кнопкой мыши, чтобы установить целевое действие.
небольшое обновление, так как Swift 3 и 4 отсутствуют: компилятор теперь может проверять имена селекторов, предотвращая опечатки при настройке target-action программно. Поэтому следует действительно использовать:
let rightButtonItem = UIBarButtonItem.init(
title: "Title",
style: .Done,
target: self,
action: #selector(rightButtonAction(sender:))
)
вы можете добавить следующий код вviewDidLoad
метод.
UIBarButtonItem *rightButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Title"
style:UIBarButtonItemStyleDone
target:self
action:@selector(rightButtonAction:)];
self.navigationItem.rightBarButtonItem = rightButtonItem;
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *rightBtn = [[UIBarButtonItem alloc]initWithTitle:@"Right Button" style:UIBarButtonItemStyleDone target:self action:@selector(rightBtnClick)];
self.navigationItem.rightBarButtonItem = rightBtn;
}
-(void)rightBtnClick{
// code for right Button
}
добавить ниже код в метод viewDidLoad
UIBarButtonItem *flipButton = [[UIBarButtonItem alloc]
initWithTitle:@"Flip"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(flipView:)];
self.navigationItem.rightBarButtonItem = flipButton;
это добавляет кнопку с правой стороны с заголовком флип, который вызывает метод:
-(IBAction)flipView
Swift код для добавления элемента кнопки панели навигации:
Способ 1 (когда вы хотите использовать системный элемент кнопки панели)
navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
Способ 2 (когда вы хотите дать свой собственный титул кнопке)
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(addTapped))
начиная с iOS 5, он позволяет добавлять более 1 кнопки по обе стороны панели навигации. Что-то вроде этого:--4-->
let add = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
let display = UIBarButtonItem(title: "Display", style: .plain, target: self, action: #selector(playTapped))
navigationItem.rightBarButtonItems = [add, display]