Добавление элемента UIBarButton в swift
Я пытаюсь добавить элемент UIBarButton в панель навигации.
вот мое объявление класса навигационной панели:
import UIKit
class NavigationBarController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
configureToolbar()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// #pragma mark - Navigation bar data source
func configureToolbar() {
let toolbarButtonItems = [
searchBarButtonItem
]
toolbar.setItems(toolbarButtonItems, animated: true)
}
var searchBarButtonItem: UIBarButtonItem {
return UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:")
}
}
нет ошибки в компиляторе, но все, что я получаю, это простая панель навигации.
Как мне получить uibarbuttonitem, чтобы показать?
3 ответов
чтобы добавить элементы в NavigationBar
на NavigationController
или NavigationBar
добавлен ViewController
, вам нужно будет сначала пройти NavigationItem
. Попробуйте это:
self.navigationItem.setRightBarButtonItems(navigationBarButtonItemsArray, animated: true)
// Or if you just want to insert one item.
self.navigationItem.setRightBarButtonItem(UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:"), animated: true)
чтобы переключить кнопку на левую сторону, просто замените setRightBarButtonItem
to setLeftBarButtonItem
или setLeftBarButtonItems
.
вы можете добавить несколько кнопок в правую или левую сторону панели навигации. Я покажу u, чтобы добавить на правой стороне, и вы можете сделать то же самое для левой стороны тоже
override func viewDidLoad()
{
let Nam1BarBtnVar = UIBarButtonItem(barButtonSystemItem: .Edit, target: self, action: #selector(Nam1BarBtnKlkFnc(_:)))
let Nam2BarBtnVar = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: #selector(Nam2BarBtnKlkFnc(_:)))
self.navigationItem.setRightBarButtonItems([Nam1BarBtnVar, Nam2BarBtnVar], animated: true)
}
func Nam1BarBtnKlkFnc(BtnPsgVar: UIBarButtonItem)
{
print("Nam1BarBtnKlk")
}
func Nam2BarBtnKlkFnc(BtnPsgVar: UIBarButtonItem)
{
print("Nam2BarBtnKlk")
}
обновлено для Swift 3:
используйте код ниже, чтобы добавить элемент UIBarButton программно.
чтобы добавить левую кнопку панели:
self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: #imageLiteral(resourceName: "your_image_name"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(yourViewControllerName.barButtonClickAction))
чтобы добавить правую кнопку панели:
self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: #imageLiteral(resourceName: "your_image_name"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(yourViewControllerName.barButtonClickAction))
метод определения:
func barButtonClickAction() {
print("Button click...")
}