私は初心者のiPhone開発者です。
UIBarButtonItem
のタイトルをプログラムで設定するにはどうすればよいですか?
私のコードは次のとおりです。
self.navigationItem.rightBarButtonItems =
UIBarButtonItem(
barButtonSystemItem: .Cancel, target: self,
action: "barButtonItemClicked:")
@IBAction func barButtonItemClicked(sender: UIBarButtonItem) {
//print something
}
タイトルを指定できる別の初期化子を使用します。
UIBarButtonItem(title: "title", style: .Plain, target: self, action: "barButtonItemClicked:")
Swift 3.1アップデート
UIBarButtonItem(title: "title", style: .plain, target: self, action: #selector(barButtonItemClicked))
Swift 2の回答
以下をviewDidLoad
に追加するだけです:
// Some text
self.barButtonItemClicked.title = "Right Button!"
OR
// A Unicode Gear Symbol
// See: http://graphemica.com/%E2%9A%99
self.barButtonItemClicked.title = "\u{2699}"
ViewController.Swift
以下のコードは、使用した名前barButtonItemClicked
を設定します。 UIBarButtonItemを使用して、タイトルの設定方法を示しました。しかし、それを機能に適合させることは簡単です。
import UIKit
class ViewController: UIViewController {
// Please make sure the line below is properly connected to your Storyboard!
@IBOutlet weak var barButtonItemClicked: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// Set the text of the NavBarButtonItem Title
self.barButtonItemClicked.title = "Right Button!"
// Gear Icon
// self.barButtonItemClicked.title = "\u{2699}"
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
私の場合、編集|完了を切り替えたいと思いました。ただし、別のUIBarButtonItem
が既にあるため、leftBarButtonItemを使用できませんでした。
私がしたことは次のとおりです:
1- _@IBOutlet weak var edit: UIBarButtonItem!
_を作成
2-次に、状態を保持する変数:_var isEditingMode = false
_
3-今、viewDidLoad
で:
_override func viewDidLoad() {
…
self.edit.action = #selector(self.toogleEditor(_:))
self.edit.title = "Edit"
self.setEditing(isEditingMode, animated: true)
…
}
_
Edit.action Selectorをカスタム関数toogleEditor
に初期化します。アクションが発生するたびにタイトルを変更できるようにします。
4- IBActionを作成します。
_@IBAction func toogleEditor(sender: AnyObject) {
if isEditingMode
{
isEditingMode = false
self.edit.title = "Edit"
}
else
{
isEditingMode = true
self.edit.title = "Done"
}
self.setEditing(isEditingMode, animated: true)
}
_
この関数は、ユーザーがUIBarItemButton
をクリックするたびにトリガーされます。行うべきことは、setEditing(…)
を使用してUITableViewController
の動作を変更することだけです。
スイフト4:
@IBOutlet var saveButton: UIBarButtonItem!
saveButton.title = "Saved"
ドキュメントから
init(title title: String?,
style style: UIBarButtonItemStyle,
target target: AnyObject?,
action action: Selector)