Локальные уведомления поступили в iOS 13 - PullRequest
0 голосов
/ 12 апреля 2020

Я внедряю уведомления в своем приложении и не могу понять, как go указать c контроллер просмотра, когда пользователь нажимает на уведомление. Начиная с iOS 13, мое приложение использует SceneDelegate, но функция: userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) вызывается только в AppDelegate.

Как мне go указать указанный c контроллер просмотра, когда пользователь нажимает на уведомление, когда мое приложение использует SceneDelegate? Все ресурсы, которые я нашел в Интернете, имели дело с iOS 12 или более поздние версии, в которых вы выбираете контроллер представления из AppDelegate.

1 Ответ

2 голосов
/ 12 апреля 2020

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

NotificationCenter.default.post(name: Notification.Name("SOME_NAME"), object: nil, userInfo: nil)

И вы должны добавить наблюдателя для этого уведомления.

 NotificationCenter.default.addObserver(self, selector: #selector(someMethod(notification: )), name: Notification.Name("SOME_NAME"), object: nil)

Существуют также разные options

Например, я создаю простой класс Navigator, который является Singleton и который содержит верхний NavigationController и все знания о текущем стеке представлений. И если мне нужно открыть какой-то конкретный c экран из AppDelegate, я использую что-то вроде:

MyNavigator.shared.goToSomeScreen()

Тем не менее, все зависит от того, какой у вас текущий код и что вам нужно, наверняка Вы можете найти то, что подходит вам лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...