Сделайте так, чтобы расширение iOS Action получало уведомление о том, что приложение Host стало активным

У меня есть заявка и сопутствующее продление действия. Основная цель расширения - загрузить файл из любого вызывающего приложения в URL-адрес, предоставленный основным приложением.

Рабочий процесс:

  1. В основном приложении пользователь выбирает URL из списка

  2. В любом приложении, например, на iCloud Drive, пользователь может выбрать любой файл, нажать кнопку "Поделиться", выбрать соответствующее расширение действия, которое выполнит загрузку на ранее выбранный URL-адрес.

ViewController расширения имеет кнопку "Изменить", которая открывает главное приложение. Таким образом, пользователь может переключиться на основное приложение, выбрать другой URL-адрес и вернуться обратно к основному приложению (в котором расширение все еще активно).

введите описание изображения здесь

Я пытаюсь выяснить, как расширение, которое является просто ViewController и не имеет прямого доступа к жизненному циклу хост-приложения, может быть уведомлено о том, что хост-приложение снова стало активным. Чтобы расширение могло подобрать вновь выбранную ссылку.

У меня нет прямого доступа к методам appDelegate хоста, и ни один viewWillAppear не вызывается, когда представление расширения снова становится активным.

Есть идеи?

1 ответ

Решение

Отвечая на мой собственный вопрос: есть по крайней мере один способ сделать это - с помощью NotificationCenter, описанного в этом ответе на вопрос "Почему viewWillAppear не вызывается...".

Если у кого-то есть идея получше - буду рад поэкспериментировать с ней.

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