Как мне решить, в каком окне открывать настройки уведомлений в iOS 13 для userNotificationCenter:openSettingsFor:?

В iOS есть следующий метод, который вызывается, чтобы вы могли предлагать пользователю настраиваемые параметры уведомлений через Центр уведомлений или приложение "Настройки":

func userNotificationCenter(_ center: UNUserNotificationCenter, openSettingsFor notification: UNNotification?) {
    // Open up a Settings view controller within your app or something        
}

В нем вы должны открыть контроллер просмотра настроек приложения.

В iOS 12 это было просто: найдите активное окно, найдите rootViewController и переместите экран настроек поверх него.

В iOS 13 у вас (может) быть несколько окон, поэтому я предполагаю, что этот метод может быть вызван в любом из них?

Допустим, у вас открыто 5 окон вашего приложения в фоновом режиме, затем вы открываете приложение "Настройки" и запрашиваете настройки уведомлений для своего приложения. Какое окно он использует? Как мне узнать, в какой контроллер окна / представления добавить экран настроек? Я бы не хотел выбирать один случайным образом и случайно добавлять его к одному в фоновом режиме, а не к тому, который был открыт.

UNNotificationResponseс другой стороны , естьtargetScene, поэтому, если ваше приложение открывается из уведомления, вы можете знать, какое окно использовать, но в этом методе, похоже, его нет.

Должен ли я просто перебрать все оконные сцены, доступные для приложения, и найти одну на переднем плане?

0 ответов

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