質問: self.editButtonItem() self.toolbarItems?.insert(button, atIndex: 1) } ``` とするとうまくいきました。 `editButtonItem()`として機能しました。 tableViewの編集状態と、ボタンのタイトルが「完了」/「編集」に切り替わるようになりました。 UIViewControllerの ``` func setEditing(editing: Bool, animated: Bool) ``` も呼ばれます。 理由はイマイチ理解していないのですが。。 ありがとうございました。
回答: *編集ボタンになりません* の部分が何を表したいのかよくわからないのですが。 Toolbarに入れるための編集ボタンを`UIViewController`のメソッド`editButtonItem()`で作成した場合、それはViewControllerの支配を受けるシステムアイテムになるので、その表示内容を自由に変更することはできません。 `editButtonItem()`で作成したボタンの表示を"完了"("Done")にしたいのであれば、ViewControllerのどこかのメソッドの中で、 ``` self.editing = true ``` 等としてやります。ただし、この`editing`プロパティの値は編集ボタンを押すたびに自動的に変更されてしまい、`self.editing = false`にすると表示は"編集"("Edit")になります。 (`editing`は`UIViewController`のプロパティですが、`editButtonItem()`で作成したbuttonItemと連携しています。) そのようなシステムの動作が自分のやりたいことに合わない場合には、システムアイテムにならないように、 ``` myButtonItem = UIBarButtonItem(title: "完了", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(myAction)) ``` と言った形で`UIBarButtonItem`のインスタンスを作ってやらないといけません。 この場合、`title`のローカライズなどは自前でやる必要があります。 ただ、`title`プロパティをいじれば、一時的にでも表示は変わるはずだと思うのですが...。 `editButton.title = "完了"`とする時の`editButton`には、実際に表示されているtoolbar内のeditButtonが正しくセットされているでしょうか?