Конечно, есть несколько способов сделать это.Один из способов, который я предпочитаю, и довольно простой, - это использовать глобальный синглтон.
Таким образом, проблема заключается в обработке данных из push-уведомлений при перезапуске приложения из фона, верно?
В методе func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void)
мы обрабатываем push-уведомления, верно?
У меня есть способ проверить, могу ли я нажать или представить экран в данный момент (например, приложение полностью открыто, ине перезапускаясь с фона).Если нет способа нажать или представить экран, потому что приложение просто перезапускается из фона (то есть пользователю пока не представлены экраны), то я бы сохранил данные в тот глобальный синглтон, который я упомянул выше.
А когда корневой или домашний экран только что полностью загрузился, это означает, что мы готовы проверить, есть ли сохраненные данные из push-уведомления, и именно тогда мы будем готовы сделать любые изменения пользовательского интерфейса илипредставление / нажатие экранов на основе push-уведомлений.
Надеюсь, эта идея поможет!