gpt4 book ai didi

ios - 推送通知 - 当应用程序从后台关闭时设置 rootViewController

转载 作者:行者123 更新时间:2023-11-30 11:44:26 25 4
gpt4 key购买 nike

我已经使用 firebase 实现了推送通知。当应用程序位于前台和后台时,它可以按照我想要的方式完成。但是当应用程序从后台关闭并且通知从消息中打开时,我想重置我的 rootViewController。因此,我在 didReceive response: 上更改了它,但是当应用程序重新打开时,它会返回到旧的 rootViewController(已在 didFinishLaunchingWithOptions 上设置)。

PS。默认rootViewController是一个luncher动画viewController,它有一些带有延迟的动画,然后它将重定向到另一个ViewController,该ViewController将被设置为rootViewController

这是代码片段:

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

let userInfo = response.notification.request.content.userInfo

let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)

let state = UIApplication.shared.applicationState

if state == .active {
// foreground
// Will return current viewController which is showing into screen
let rootVC = getCurrentViewController()
let reviewVC = mainStoryboard.instantiateViewController(withIdentifier: ReviewViewController.className) as! ReviewViewController
rootVC?.present(reviewVC, animated: true, completion: nil)
} else {
// background
let swVC = mainStoryboard.instantiateViewController(withIdentifier: "SWRevealViewController") as! SWRevealViewController
window?.rootViewController = swVC
window?.makeKeyAndVisible()
// Will return current viewController which is showing into screen
let rootVC = self.getCurrentViewController()
let reviewVC = mainStoryboard.instantiateViewController(withIdentifier: ReviewViewController.className) as! ReviewViewController
rootVC?.present(reviewVC, animated: true, completion: nil)
}
completionHandler()
}

最佳答案

从您的 didReceive 方法中删除此行。

let swVC = mainStoryboard.instantiateViewController(withIdentifier: "SWRevealViewController") as! SWRevealViewController
window?.rootViewController = swVC
window?.makeKeyAndVisible()

关于ios - 推送通知 - 当应用程序从后台关闭时设置 rootViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48986126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com