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
}
}