Как обновить приложение с расширением Today

У меня есть требование обновить приложение, содержащее viewcontroller, из контроллера представления виджета todayextension, когда приложение находится в фоновом / переднем состоянии. Давайте предположим.

  1. Приложение, содержащее viewcontroller, содержит список информации. Следующее нажатие на кнопку домой приложение переходит в фоновое состояние.
  2. Теперь откройте виджет и покажите список информации, как показано в приложении, содержащем viewcontroller в TodayExtensionViewcontroller.
  3. Если вы обновляете какую-либо информацию в TodayExtensionViewController ту же информацию, которую я хочу воспроизвести в приложении, содержащем viewcontroller, когда приложение переходит из фонового состояния в основное.

1 ответ

Ваше приложение и расширение Today должны иметь возможность обмениваться данными.

Прежде всего, вы должны добавить возможность "Группа приложений" к идентификаторам приложений как вашего приложения, так и вашего расширения Today, чтобы они могли получить доступ к общим данным.

Самым простым способом обмена данными является использование общих пользовательских настроек по умолчанию, но, например, также можно использовать постоянное хранилище базовых данных.

Каждый раз, когда ваше приложение выходит на передний план, оно должно проверять, изменились ли общие данные (или просто перезагрузить свои данные из общего хранилища), чтобы изменения, внесенные в виджет, вступили в силу.

Каждый раз, когда пользователь изменяет данные в вашем приложении (или, по крайней мере, до того, как приложение становится "неактивным"), приложение должно обновлять общие данные, чтобы обновлять виджет.

Это руководство от Apple является хорошей отправной точкой. Более того, есть много хороших учебных пособий, которые объясняют "обмен данными" гораздо более подробно.

Другие вопросы по тегам