Оповещение из AppDelegate в PresentedViewController: «Попытка представить UIAlertController в ... который уже представляет UIAlertController» - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь представить сообщение из Push-уведомления (PN) в UIAlertController из AppDelegate в текущий ViewController.Если я отправлю 1 PN, где нет проблем, и отображается предупреждение!Но затем я отправляю второй PN, прежде чем я нажму на кнопку OK в предупреждении, сообщение не отображается, и появляется следующее предупреждающее сообщение:

"Предупреждение: попытка представить в который уже представляет "

Так как я могу обработать более 1 PN или можно показать последний PN?

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
        guard let aps = userInfo["aps"] as? [String: AnyObject] else {
            completionHandler(.failed)
            return
        }
        dump(aps)
        let message = aps["alert"] as? String
        let alertController = UIAlertController(title: "New message", message: message, preferredStyle: .alert)
        let ok = UIAlertAction(title: "OK", style: .default, handler: nil)
        alertController.addAction(ok)

        DispatchQueue.main.async {
            self.window?.rootViewController?.presentedViewController?.present(alertController, animated: true, completion: nil)
        }

        completionHandler(UIBackgroundFetchResult.noData)
}

1 Ответ

0 голосов
/ 27 июня 2019

Вы можете управлять списком / стеком уведомлений и отображать их последовательно, пока ваш список / стек не станет пустым.

Посмотрите на этот ответ, как отобразить несколько предупреждений: Попытка представить UIAlertControllerна контроллере представления, который уже представляет (ноль) [Swift]

...