0

Я создал приложение iPad iOS 5, которое использует второй экран. У нас есть вид администратора (на iPad) и внешний вид через телевизор с поддержкой HDMI, подключенный через адаптер Apple DVI. Как вид iPad, так и вид телевизора получают одинаковые обновления данных из служебного вызова, который выполняется каждые несколько секунд. Затем мы представляем данные, полученные в виде серии графиков; диаграммные данные представлены очень по-разному для ТВ и iPad-представлений, но основной словарь данных одинаков. Я задаюсь вопросом об элегантном способе создания такого решения. На данный момент у меня есть один из контроллеров вида (admin iPad VC), который выполняет вызовы службы с использованием GCD, а затем отправляет NSNotifications, которые обновляют свойства данных (диаграмм) на другом (ТВ) контроллере представлений. Я подумываю о переносе вызовов службы из VC и создании синглтона, который инициализируется в контроллере приложения. Затем я (каким-то образом) установил два VC в качестве делегатов, и они обновляются с использованием простого протокола. Я не совсем уверен, что это хороший подход или я должен рассмотреть что-то еще? Могу ли я установить оба VC в качестве делегатов другого класса или обычно это только один делегат на один экземпляр класса?iOS Airplay viewcontroller data sychronisation

Спасибо за любой ввод.

Бен

ответ

0

Почему не абстрагировать диаграмма данных в своей собственной модели класса, который вы можете поделиться в обоих контроллерах зрения? Класс модели может отвечать за выборку новых данных. Чтобы информировать контролеры об обновлениях, они могут либо использовать KVO на объекте модели, либо они могут наблюдать уведомления, отправленные из объекта модели при возникновении обновления, или вы можете иметь массив делегатов для объекта модели, и каждый контроллер представления может быть делегатом.

Кажется, нет какой-либо веской причины сделать его одиночным, хотя вы можете, если хотите.

+0

Да, это то, что я говорю. Создание модели, но я не уверен в «лучшей практике», чтобы поделиться этой моделью между двумя активными VC. Что касается singleton, это класс, который выполняет служебные вызовы. Он создается и запускается при запуске и продолжает вызывать сервер, а затем обновляет два VC с использованием модели. Я не люблю использовать уведомления, если это необходимо; по опыту вы можете легко закончить с помощью слишком деактивированного приложения, запускающего события влево, вправо и в центр и без цепочки ответственности. – Ben

Смежные вопросы