2021年4月26日月曜日

UIBarButtonItem の title が変わらない場合にチェックする箇所

UIBarButtonItem の title が変わらない場合にチェックする箇所

概要

IBOutlet で参照している UIBarButtonItem の title を変更する場合は button.title = "hoge" のようにします
しかしなぜか変わらないケースがあったので対処方法を紹介します

環境

  • Swift5
  • Xcode 12.4 (12D4e)

title を変更するサンプルコード

例えば以下のようなコードがあるとします
本来であれば Edit <-> End とタイトルが変わります

@IBAction func edit(_ sender: AnyObject) {
    if (self.tableView.isEditing) {
        self.tableView.isEditing = false
        editButton.title = "Edit"
    } else {
        self.tableView.isEditing = true
        editButton.title = "End"
    }
}

StoryBoard で BarButtonItem の設定を確認する

原因は BarButtonItem の属性でした
StoryBoard 上で「System Item」の値を Custom に変更したところちゃんとタイトルが動的に変更されるようになりました

StoryBoard 上で Title 属性をあらかじめ設定しておくと System Item も自動的に Custom に変更されるようです

0 件のコメント:

コメントを投稿