В настоящее время у меня есть UITableViewController с массивом Memories (который представляет собой структуру с двумя переменными - memoryTitle и memoryDescription).Среди didSelectRowAt, я запустил следующую функцию, чтобы позволить пользователю редактировать элемент.
func configure(memory: Memory, position: Int) {
guard let vc = storyboard?.instantiateViewController(withIdentifier: "AddMemoryViewController") as? AddMemoryViewController else {
fatalError("Unable to create AddMemoryViewController")
}
selectedMemory = position
vc.delegate = self
vc.memory = memory
navigationController?.pushViewController(vc, animated: true)
}
Как только они закончили редактирование, мой AddMemoryViewController отправляет данные обратноделегату (который является моим исходным представлением таблицы) и обновляет память следующим кодом:
func update(memory: Memory) {
guard let selectedMemory = selectedMemory else { return }
memories[selectedMemory] = memory
saveData()
tableView.reloadData()
}
Это работает нормально, но сейчас я пытаюсь реализовать UISearchController в моем исходном представлении таблицы,Текущий способ, которым я пытаюсь использовать, это наличие массива FilterMemories.Если я использую FilterMemories и попытаюсь отредактировать один из этих элементов, я не уверен, как снова обновить исходный элемент (так как индекс элемента различен для каждого массива).Я думаю, что ответ лежит где-то в замене Memories на класс (поэтому отфильтрованные памяти и памяти редактируют один и тот же объект), но было бы здорово, если бы кто-нибудь мог дать какое-то руководство, как решить эту проблему, пожалуйста?
Многиезаранее спасибо!