ユーザーがローカル通知をタップしたときに詳細ビューコントローラを表示しようとしています。通知が録画されたときにViewControllerを表示する
libc++abi.dylib: terminating with uncaught exception of type 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()
}
:
//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()
}
は、このコードは、何らかの理由で、例外を生成します。 これまでのところ、私はこのてきました
これは機能しますが、タブバーとナビゲーションコントローラは表示されなくなりました。
私はここで間違っていますか?代わりにlet vc = DetailTableViewController()
の
どの行にコードが壊れていますか? – KKRocks
AppDelegateファイルの先頭に!? –