W moim przypadku chciałem przełączać pomiędzy Edycja | Gotowe. Jednak nie mogłem użyć leftBarButtonItem, ponieważ miałem już inny UIBarButtonItem
.
Co zrobiłem jest następujący:
1- Tworzenie @IBOutlet weak var edit: UIBarButtonItem!
2- Następnie zmiennej trzymać Stan: var isEditingMode = false
3- Teraz w viewDidLoad
:
override func viewDidLoad() {
…
self.edit.action = #selector(self.toogleEditor(_:))
self.edit.title = "Edit"
self.setEditing(isEditingMode, animated: true)
…
}
Inicjuję selektor edit.action na moją funkcję niestandardową toogleEditor
. Chcę móc zmienić tytuł za każdym razem, gdy pojawi się akcja.
4- Załóż 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)
}
Funkcja ta jest wyzwalana za każdym razem, gdy użytkownik kliknij UIBarItemButton
. Jedyne, co można zrobić, to zmienić ustawienia na UITableViewController
.
Działa idealnie - użyłem go tam, gdzie muszę przełączać się między ruchomymi komórkami i rozpoznawać wybór komórek –