ナビゲーションバーに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を表示するにはどうすればよいですか?
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
をsetLeftBarButtonItem
またはsetLeftBarButtonItems
に置き換えます。
ナビゲーションバーの右側または左側に複数のボタンを追加できます。私はあなたに右側に追加するように見せます、そしてあなたは左側にも同じことをすることができます
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...")
}