gpt4 book ai didi

ios - 点击通知时显示 ViewController

转载 作者:行者123 更新时间:2023-11-28 15:35:38 25 4
gpt4 key购买 nike

我试图在用户点击本地通知时显示详细信息 View Controller 。到目前为止,我有这个:

//AppDelegate.swift

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
let userInfo = response.notification.request.content.userInfo
if let id = userInfo["item_id"] as? Int {
if let item = ItemsRepository.shared.getItem(id: id) {
let vc = DetailTableViewController()
vc.item = item
let tabController = self.window?.rootViewController as! UITabBarController
let navigationController = tabController.selectedViewController as! UINavigationController
navigationController.pushViewController(vc, animated: true)
}
}
completionHandler()
}

这段代码由于某种原因产生了一个异常:

libc++abi.dylib:以 NSException 类型的未捕获异常终止

  • 版本 2

`

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
let userInfo = response.notification.request.content.userInfo
if let id = userInfo["item_id"] as? Int {
if let item = ItemsRepository.shared.getItem(id: id) {
let vc = DetailTableViewController()
vc.item = item
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "DetailView") as! DetailTableViewController
vc.item = item
window?.rootViewController = vc
self.window?.makeKeyAndVisible()

}
}
completionHandler()
}

有点用,但标签栏和导航 Controller 不再可见!

我在这里做错了什么?

最佳答案

代替 let vc = DetailTableViewController()

试试这个

    let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "someViewController")

告诉我这是否可行

关于ios - 点击通知时显示 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44323516/

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