UIViewController isEditing - наблюдатель свойства не работает

Я пытался реализовать наблюдатели свойств на своем пользовательском UIViewController, но заметил, что он не работает со свойством isEditing.

Ребята, у вас есть идея, почему?

class MasterViewController: UIViewController {

    // MARK: - Properties

    override var isEditing: Bool {
        didSet {
            print("VC is editing")
        }
    }
}

2 ответа

Согласно документации для isEditing

Используйте метод setEditing(_:animated:) в качестве метода действия для анимации перехода этого состояния, если представление уже отображается.

И из setEditing(_:animated:)

Подклассы, использующие кнопку "Готово", должны переопределить этот метод, чтобы изменить их представление на редактируемое состояние, если isEditing равно true, и нередактируемое состояние, если оно равно false. Этот метод должен вызывать реализацию super перед обновлением его представления.


TL; DR

Вы хотите переопределить setEditing(_:animated:) вместо.

Это для тех, кто не может найти пример работы setEditing.

СВИФТ 5:

      override func setEditing(_ editing: Bool, animated: Bool) {
        if yourTableView.isEditing == true {
            yourTableView.isEditing = false //change back
            
            
        } else {
            yourTableView.isEditing = true // activate editing
            editButtonItem.isSelected = true // select edit button
        }
    }
Другие вопросы по тегам