Как перейти к некоторому представлению из apns, щелкнув в SwiftUI?
В Swift 5 и UIKit при нажатии apns я нажимал на нужный контроллер представления, выбирая контроллер вида сверху и нажимая желаемый контроллер представления поверх контроллера вида сверху.
Но в SwiftUI я не могу этого сделать. Как я могу перемещаться из apns в SwiftUI.
Мне не нужно устанавливать желаемый контроллер в качестве корневого контроллера окна. Я хочу переместить желаемый контроллер поверх контроллера вида сверху. Я просто хочу нажать на контроллер из apns click.
Я получаю щелчок apns в этом методе делегата:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
}
1 ответ
Вы можете добавить свой собственный метод в SceneDelegate. Создайте объект SceneDelegate, установите его окно rootViewController следующим образом.
extension SceneDelegate{
func loginViewController() {
let loginView = LoginView()
let sceneDelegate = UIApplication.shared.connectedScenes.first?.delegate as?
SceneDelegate
sceneDelegate?.window?.rootViewController = UIHostingController(rootView:
loginView)
}
}
И вызовите такой метод:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
//Call method here
let sceneDelegate = UIApplication.shared.connectedScenes.first?.delegate as? SceneDelegate
sceneDelegate?.loginViewController()
}