首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ios 11中从本地通知打开视图控制器

在ios 11中从本地通知打开视图控制器
EN

Stack Overflow用户
提问于 2018-08-01 14:15:03
回答 2查看 1.5K关注 0票数 0

我有一个ios 11应用程序,它在给定的时间使用本地推送通知来通知剩余者。本地通知可以工作,当滑动时,它们会打开我的应用程序的主视图。我的应用程序的主视图是一个uitableviewcontroller。提醒是表视图中的行。

如果你点击一个提醒,它会打开一个新的视图控制器by self.presentview...新视图会在表视图上弹出。我没有使用序列图像板或xib文件,也不是通过编程来实现的。

如何将提醒id传递给推送通知并返回给应用程序,然后让提醒id打开第二个视图控制器?第二个视图控制器有更多关于提醒的详细信息。

EN

回答 2

Stack Overflow用户

发布于 2018-08-01 14:32:19

安排本地通知时,您可以在userInfo中设置所需的详细信息

代码语言:javascript
复制
let notification = UILocalNotification()
    notification.fireDate = date
    notification.alertBody = "Alert!"
    notification.alertAction = "open"
    notification.hasAction = true
    notification.userInfo = ["reminderID": "222" ]

您将获得didReceiveRemoteNotification格式的userInfo

代码语言:javascript
复制
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {

        print("didReceiveRemoteNotificationfetchCompletionHandler \(userInfo)")

/// HANDLE NAVIGATION HERE 



    }
票数 0
EN

Stack Overflow用户

发布于 2018-08-03 13:30:57

基于anuraj的答案。在userInfo中设置所需的详细信息

然后使用以下方法处理导航(在appDelegate.swift中)

代码语言:javascript
复制
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)
      }


    }

如果你需要任何帮助,请告诉我

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51626479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档