У меня есть приложение, которое работает, но я не рад, что у меня есть лучшее (или самое простое) решение на месте.Приложение имеет единую базу данных с несколькими таблицами с типичными ссылками «один ко многим».Пока все хорошо и ничего необычного.
Приложение имеет 3 вкладки, каждая из которых может отображать список записей из одной из таблиц.Если пользователь касается строки таблицы, представление навигации на вкладке затем выдвигает новое представление таблицы, отображающее подробности.Подумайте о вашей адресной книге, и вы поймете идею.
В подробном представлении записи у меня есть разделы, содержащие ссылки на записи в других таблицах.Таким образом, прикосновение к одному приведет к переходу к этой записи, переходя на соответствующую вкладку.
Сложный бит при редактировании записи, поскольку он может повлиять на данные, отображаемые на другой вкладке.Первоначально я изучал выполнение обновлений табличных представлений на основе изменений основных данных, отправленных с помощью уведомлений о сохраненных основных данных.Однако я обнаружил, что разработка того, какие изменения необходимо внести в табличное представление на основе этого, была слишком сложной и ненадежной.главным образом потому, что у меня нет графика данных до и после сравнения.Так что в настоящее время, когда происходит сохранение основных данных, табличные представления просто помнят, что их резервные данные могли быть затронуты, и они выполняют полную перезагрузку при следующем отображении.
Хотя моя система работает для синхронизации данных между представлениями таблиц, я уверен, что должен быть лучший способ.Я рассматриваю вопрос о том, может ли KVO быть лучшим вариантом с контроллерами табличного представления, отслеживающими отдельные поля и объекты в графе данных, чтобы они могли реагировать на точные изменения, вызванные другими табличными представлениями.Подход с использованием уведомлений о базовых данных напоминает «молотковый» подход к проблеме, требующей тонкого касания.
Как другие справились с такой проблемой?