UIBarButtonItem bad Редактировать / Готово анимация

Я реализовал редактор редактирования для моего настраиваемого контроллера tableview без использования кнопки редактирования по умолчанию. Я поместил элемент UIBarButton в свою раскадровку и связал его с IBOutlet в своем пользовательском классе. Я реализовал все эти простые механизмы для изменения названия кнопки:

class DetailTableViewController: UITableViewController {

var selectedMedicine: NSManagedObject?
var edit: Bool = false

@IBOutlet var editButton: UIBarButtonItem

@IBOutlet var nameTextField: UITextField
@IBOutlet var noteTextView: UITextView


@IBAction func enableEditing(sender: AnyObject) {
    if !edit
    {
        println("editing")
        self.edit = true
        self.navigationItem.rightBarButtonItem.title = "Done"
    }
    else
    {
        self.edit = false
        self.navigationItem.rightBarButtonItem.title = "Edit"
    }
}

Название изменится, но при переходе от Edit к Done есть что-то странное, потому что это немного вяло. Я нашел другого с той же проблемой, но никто не ответил ему.

Вы можете посмотреть это видео для undertsand плохая анимация, я имею в виду видео

1 ответ

Решение

Вместо того, чтобы вручную устанавливать заголовок кнопки панели и состояние отслеживания, вы можете использовать встроенные свойства UIViewController.editButtonItem и UIViewController.editing:

func viewWillAppear(animated:Bool) {
    self.navigationItem.rightBarButtonItem = self.editButtonItem()
}

@IBAction func enableEditing(sender: AnyObject) {
    self.editing = !self.editing
}
Другие вопросы по тегам