我有一个ios 11应用程序,该应用程序在给定时间使用本地推送通知来处理剩余部分。本地通知有效,并且在滑动时会打开我的应用程序的主视图。我的应用程序的主视图是uitableviewcontroller。提醒是表格视图中的行。
如果单击提醒,则将打开self.presentview的新视图控制器...新视图将在表视图上弹出。我没有使用情节提要或Xib文件,而是通过编程方式进行的。
如何将提醒ID传递给推送通知并返回到应用程序,然后使该提醒ID打开第二个视图控制器?第二个视图控制器具有有关提醒的更多详细信息。
答案 0 :(得分:0)
在安排本地通知时,您可以在userInfo
let notification = UILocalNotification()
notification.fireDate = date
notification.alertBody = "Alert!"
notification.alertAction = "open"
notification.hasAction = true
notification.userInfo = ["reminderID": "222" ]
您将在didReceiveRemoteNotification
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
print("didReceiveRemoteNotificationfetchCompletionHandler \(userInfo)")
/// HANDLE NAVIGATION HERE
}
答案 1 :(得分:0)
以anuraj的答案为基础。在userInfo
然后使用以下方法(在appDelegate.swift
中处理导航)
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
print("didReceiveRemoteNotificationfetchCompletionHandler \(userInfo)")
let id = userInfo["reminderID"] as! String
/// HANDLE NAVIGATION HERE
if let tableVC = self.window?.rootViewController as? yourTableViewControllerClass {
let reminderDetailsVC = yourReminderDetailsVC()
reminderDetailsVC.reminderID = id
tableVC.present(reminderDetailsVC, animated: true)
}
}
让我知道您是否需要任何帮助