【问题标题】:How to navigate to some view from apns click in SwiftUI?如何从 SwiftUI 中的 apns 点击导航到某些视图?
【发布时间】:2020-06-12 05:45:31
【问题描述】:

在 swift 5 和 UIKit 中单击 apns 我一直通过获取顶部视图控制器并将所需的视图控制器推送到顶部视图控制器上来推送到所需的视图控制器。

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

我不必将所需的控制器设置为窗口根控制器。我想将所需的控制器推到顶视图控制器上。我只想从 apns click 推送到控制器。

我在这个委托方法中获得了 apns 点击:

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

【问题讨论】:

标签: swiftui swiftui-navigationlink


【解决方案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()

}

【讨论】:

    猜你喜欢
    • 2019-11-23
    • 2020-06-03
    • 2021-08-09
    • 1970-01-01
    • 2021-04-06
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多