在swift 5和UIKit中,在单击apn时,我一直在通过获取顶视图控制器将其推到所需的视图控制器,并将所需的视图控制器推到顶视图控制器之上。
但是在SwiftUI中,我无法做到这一点。如何在SwiftUI中从APN导航。
我不必将所需的控制器设置为窗口根控制器。我想将所需的控制器推到顶视图控制器上。我只想通过apns点击将其推送到控制器。
我要在此委托方法中单击apns:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
}
答案 0 :(得分: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()
}