如何在SwiftUI中从apns单击导航到某些视图?

如何在SwiftUI中从apns单击导航到某些视图?,swiftui,swiftui-navigationlink,Swiftui,Swiftui Navigationlink,在swift 5和UIKit中,单击apns时,我通过获取俯视图控制器并将所需的视图控制器推到俯视图控制器上,一直推到所需的视图控制器 但在SwiftUI,我无法做到这一点。如何在SwiftUI中从apns导航 我不必将所需的控制器设置为窗口根控制器。我想将所需的控制器推到俯视图控制器上。我只想从apns点击按钮推到控制器 我在该委托方法中获得apns单击: func userNotificationCenter(_ center: UNUserNotificationCenter, didRe

在swift 5和UIKit中,单击apns时,我通过获取俯视图控制器并将所需的视图控制器推到俯视图控制器上,一直推到所需的视图控制器

但在SwiftUI,我无法做到这一点。如何在SwiftUI中从apns导航

我不必将所需的控制器设置为窗口根控制器。我想将所需的控制器推到俯视图控制器上。我只想从apns点击按钮推到控制器

我在该委托方法中获得apns单击:

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
}

您可以在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()

}

这回答了你的问题吗?@莫汉和朱玛不,这不是我要找的。