应用程序 didreceiveRemoteNotification 并跳转到特定视图

2023-12-01

我一直在尽一切努力来解决这个问题。当应用程序关闭时,我会收到一条通知,其中包含 2 个自定义项目(一个类型和一个 ID)。类型应该告诉我要加载哪个视图,而 id 应该告诉应用程序从数据库获取哪一行。我正在经历地狱般的尝试来解决这个问题。

我需要点击通知并让它带我到相关记录。到目前为止,我已经使用两种不同的方法几乎取得了成功,我将在下面概述这些方法。

我还应该指出,我知道有效负载从 APNS 可以正常工作,因为我已经将其调试至死亡:)

我尝试的第一件事如下:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{

    NSString *itemType = [[userInfo objectForKey:@"T"] description];
    NSString *itemId = [[userInfo objectForKey:@"ID"] description];

    self.window=[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // type 1 = call, type 2 = contact
    if ([itemType isEqual: @"1"]) {
        Leads_CallsDetailViewController *callView = [[Leads_CallsDetailViewController alloc] init];
        [callView displayItem:itemId];
        [self.window addSubview:callView.view];
        [self.window makeKeyAndVisible];
    } else if([itemType isEqual: @"2"]) {
        Leads_ContactsDetailViewController *contactView = [[Leads_ContactsDetailViewController alloc] init];
        [contactView displayItem:itemId];
        [self.window addSubview:contactView.view];
        [self.window makeKeyAndVisible];
    }
}

有了这个,我在详细信息视图上有一个名为 displayItem 的方法,我将使用它从 api 获取数据,然后显示它。这做了一些事情,但看起来视图从未真正加载。我的页面上有一个滚动视图和各种按钮,但从 addSubview 加载的只是背景图像。完全加载视图时没有发生任何真正的事情。我不知道该如何处理。

我尝试的第二件事是直接进入视图,如下所示:

NSString *storyboardId = @"Leads_Calls_SB";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *initViewController = [storyboard instantiateViewControllerWithIdentifier:storyboardId];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = initViewController;
[self.window makeKeyAndVisible];

这似乎加载了视图的功能和美观,但有两个主要警告。 1.我不知道如何向它传递数据,2.当我尝试弹出时它不喜欢它,当我尝试从那里继续推送时它也很生气,几乎就像没有导航一样视图的控制器,即使整个应用程序都嵌入在导航控制器中。

非常感谢你的帮助。如果有人能帮我解决这个问题,我将感激不尽。


通常对于这个要求我会这样做..

  1. 使用 NSNotificationCenter 并从 didReceiveRemoteNotification 发布通知。

    [[NSNotificationCenter defaultCenter] postNotificationName:@"notificationReceived"     object:self userInfo:userInfo];
    
  2. 从 VC 订阅它,您可以在其中打开详细信息视图以显示消息。

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationReceived:) name:@"notificationReceived" object:nil];
    
  3. 如果您自己实例化 VC 并且不使用 segue。你可以这样做..

    UIStoryboard* storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    detailVC = [storyBoard instantiateViewControllerWithIdentifier:@"detailVC"];
    detailVC.delegate = self;
    
    detailVC.userInfo = @"YOUR DATA";
    [self presentViewController:detailVC animated:YES completion:nil];
    
  4. 要返回,您可以在您的详细 VC 中执行此操作。

    [self dismissViewControllerAnimated:YES completion:nil];
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用程序 didreceiveRemoteNotification 并跳转到特定视图 的相关文章

  • 检查定位服务是否开启

    我一直在对 CoreLocation 进行一些研究 最近 我遇到了一个在其他地方 但在 Objective C 和 iOS 8 中 已经讨论过的问题 我觉得问这个问题有点傻 但是如何在 iOS 9 上使用 swift 检查是否启用了位置服务
  • 如何在 NSMutableArray 中实现“按值分组”?

    我正在使用 NSMutableArray 我想像在 SQL 中那样按日期获取值group by log date logMuArray log currenttime 4 30pm log date 11 12 2011 log durat
  • 是否有适用于 iPad 2 的条码扫描仪 SDK? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 本地化现有的 iOS 应用程序

    我不敢相信以前没有人问过这个问题 要么是我的编码实践太无组织性 要么是我没有使用正确的关键字 How can I localize an existing iOS app that does not use NSLocalizedStrin
  • 使用 iPhone 中的地图视图读取当前位置名称

    我读取了当前位置的纬度和经度值 然后成功将该位置固定在 iPhone 中 现在我想使用这个纬度和经度值读取该地名 我使用以下代码来读取查找当前位置 void mapView MKMapView mapView1 didUpdateUserL
  • 在 XCode 中链接静态 ObjC 库的过程

    我正在尝试链接到静态库 但不断收到链接器错误 我发现了一些发布示例的网站 但我无法看到我做错了什么 首先 我创建一个链接到我的库的项目 添加 gt 现有文件找到我的 xcodeproj 文件选择 将项目复制到目标组文件夹 选择我的宿主项目作
  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • 升级到 Xcode 4.3.1 后,自动设备配置选项消失了?

    自从升级到 Xcode 4 3 1 以来 这是我第一次发布版本 在查看我的配置文件是否是最新的时 我还注意到不再显示自动更新设备配置 即 它应该出现在该屏幕截图中的位置对我来说没有出现 如何将新设备添加到团队配置文件中 https stac
  • Apple Watch 预构建操作可更改故事板 customModule 引用

    我目前有一个项目 其中包含同一应用程序的 3 个不同版本 不同的品牌等 该项目运行得很好 从那时起 我添加了 3 个新的 Apple Watch 目标 每个应用程序 版本 1 个 其中 2 个引用 主 Apple Watch 目标中的文件
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • Xcode 9:“clang:错误:生成多个输出文件时无法指定 -o”

    我刚刚将 Xcode 更新到版本 9 并且在编译时开始收到以下错误消息 该问题似乎与将 优化级别 参数设置为 无 即 O0 进行编译有关 如果我将其设置得更高 错误就会消失 但是当我增加优化时 调试工具将无法正常工作 例如变量跟踪 我查看了
  • ABAddressBookCopyArrayOfAllPeople 中缺少联系人

    我试图从我的应用程序中的地址簿中查找电话号码 但很惊讶没有找到它 问题是 我已经在我的应用程序访问的控制台中打印了地址簿的所有号码 奇怪的是 有些联系人丢失了 我正在将输出与我的地址簿进行比较 虽然数量很少 但仍然如此 这就是我访问地址簿的
  • BigQuery 未显示链接的 Firebase Analytics 事件日志的任何数据集

    我将我的帐户链接到 Big Query 但 Firebase Analytics 事件不会自动加载到 BigQuery 中 显示 未找到数据集 警告 我的工作进度附在下面 请查收 I have getting firebase Analyt
  • 如何删除 UITableView 中的缩进?

    首先 我对此很陌生 我很可能忘记了一些非常简单的事情 问题 我正在制作一个应用程序 在 a 中显示来自 imgur com 的随机图像tableView 由于某种原因 所有单元格都会缩进少量 如下图所示 我摆弄了许多设置storyboard
  • 设计同时支持 iOS 8 和 iOS 7 的应用程序

    假设我想设计一个主从应用程序 Xcode6通用应用程序的主从项目模板包括UISplitViewController 而splitViewController是iOS8中的新功能 我也想支持iOS7的应用程序 一般来说 使用 Xcode 设计
  • UITabBarController 为 TabBar 的每个 ViewController 提供不同的 Storyboard 文件

    我的团队正在开发一个具有 UITabBarController 的应用程序 我们正在使用 Storyboard 来开发界面和流程 由于我们是一个团队 所以我们不能将所有流程放在一个故事板中 因为这会导致与 SVN 同步出现问题 所以 解决方
  • UIViewController 内的 UIsearchController 使用自动布局

    有没有人成功实施过UIViewController其中包含两个UISearchController searchBar and a UItableView使用自动布局来布局所有内容 我正在尝试实现类似的目标1密码 https itunes
  • 使用强光混合模式时突出显示伪影

    我正在 iPhone 应用程序中使用顶部图像的 HardLight 混合模式混合两个图像 它看起来像这样 UIGraphicsBeginImageContext size sourceImage drawInRect rectangle b
  • Phonegap Build 与 Xcode4 上的 Phonegap 对比?配置.xml?

    有一个使用phonegap构建的应用程序 我已经使用它编译和测试了http build phonegap com http build phonegap com服务 我发现它使用 XCode 的构建方式与在 Phonegap 网站上的构建方

随机推荐

  • 按类名划分的 JavaFX 样式

    也许是一个基本问题 但是是否可以在 JavaFX 中通过类名设置表元素的样式 例如这样 MyClassname table view column header label fx text fill F00 我希望它可以在 1 个样式表中设
  • 可以从Javascript文件访问MVC ViewBag对象吗?

    是否可以从 MVC 应用程序中的 javascript 文件执行以下操作 function alert ViewBag someValue 目前它抛出错误 引用未定义的 XML 名称 ViewBag 我不认为目前有任何方法可以做到这一点 R
  • Git Clone 在 Azure 命令行任务中生成错误

    在我的 Azure DevOps CD 管道中 我添加了一个克隆 Git 存储库的命令行任务 克隆已成功完成 但日志中出现错误 奇怪的行为是克隆与 Azure 托管代理完美配合 例如vs2017 win2016 or Windows 201
  • 如何从 Azure AD B2C 身份验证获取电子邮件地址?

    我正在尝试让 Azure AD B2C 获取用户电子邮件地址 但我在提供该地址的令牌中看不到任何内容 即使我的登录 注册策略对用户电子邮件地址进行了 声明 我如何获得电子邮件地址 更一般地说 除了示例之外 是否有任何文档可以解释此服务的工作
  • 使用 prxmatch 匹配以某个字符结尾的字符串

    匹配以某个字符结尾的字符串 我正在尝试创建一个新变量 该变量指示字符串是否以某个字符结尾 下面是我尝试过的 但是当运行此代码时 变量ending in e全为零 我希望像 Alice 和 Jane 这样的名字会与下面的代码匹配 但它们不是
  • 结构体中零长度数组的用途是什么? [复制]

    这个问题在这里已经有答案了 当我查看Linux内核代码时 发现了以下代码 struct thread info struct task struct task struct exec domain exec domain unsigned
  • 如果 isNaN,如何将变量的内容更改为零 [重复]

    这个问题在这里已经有答案了 可能的重复 当我按 Enter 时 我得到 isNaN 但该值是一个数字 我上周日交了作业 它被发回给我进行更正 因为 isNaN 值返回到 Total 文本框 我认为这就是编程要做的事情 相反 根据她的说法 i
  • 在 Seaborn 箱线图中获取值

    我想通过 Seaborn 中生成的箱线图获取具体值 即媒体 四分位数 例如 在下面的箱线图中 来源 link 有没有办法获取媒体和四分位数而不是手动估计 import numpy as np import seaborn as sns sn
  • 打印文件中的每 n 行

    我正在尝试打印每个n文件中的第 3 行 但是n不是常量而是变量 例如 我想替换sed n 1 5p 与类似的东西sed n 1 i p 这可能吗 awk还可以用更优雅的方式做到这一点 awk v n YOUR NUM NR n 1 file
  • Kubelet 使用什么来确定节点的临时存储容量?

    我在虚拟机上运行 Kubernetes 集群 安装座的简要概述如下 df h Filesystem Size Used Avail Use Mounted on dev sda1 20G 4 5G 15G 24 dev mapper vg0
  • pandas read_csv 最后一列包含逗号

    所以我有一个 csv 数据集 根据我的书 该数据集格式良好 并且我正在尝试获取pandas包以正确加载它 标题由 5 个列名组成 但最后一列由包含未转义逗号的 JSON 对象组成 例如 A B C D E 1 2 3 4 K1 V1 K2
  • 是否有更简单(且仍然高性能)的方法来通过最近邻重采样来升级画布渲染?

    我对这个看似简单的以最近邻格式升级画布渲染的任务感到有点困惑 我在这里问 如何在 JS 中正确编写这个着色器函数 目标是像这样转换 3D 渲染输出 像这样的像素艺术 但在这个问题中我问的是如何实施我选择的解决方案 本质上使用着色器来处理放大
  • 如何使用“getOwnPropertyNames”迭代地图的内容

    我在代码部分下面发布了地图 我向地图添加了一些值 如图所示 但是当我尝试使用显示地图的内容时 getOwnPropertyNames 如代码所示 循环中的日志语句不显示任何内容 请让我知道如何正确使用 getOwnPropertyNames
  • 谷歌应用脚​​本文本框值未传递给 e.parameter.TextBoxName

    在下面的代码中 我定义了一个带有名称和 ID 的文本框 按钮处理程序工作正常 但我无法获取在文本框中输入的值 msgBox 出现了 但是e parameter matchValue显示为undefined 在应用程序的其他部分 我有相同的逻
  • 在delphi中关闭运行时的delphi异常

    有什么方法可以关闭 Delphi 应用程序运行时显示的异常消息吗 我认为必须有一个指令来关闭异常消息 但我不记得了 大多数异常消息可以通过处理来抑制TApplication OnException事件 仅当没有为该事件分配处理程序时 应用程
  • 将外部 JSON 加载到 ChartJs 中

    当谈到使用 JavaScript 库绘制图表时 我是一个新手 我刚刚开始尝试 Chartjs 但我无法使用 getJson 或其他任何东西来加载我的 json 对象并替换标签和数据 我以前使用过 HighCharts 与此相比 它相当简单
  • echo shell 打开的目录:startup

    进入时start shell startup进入命令提示符 它会在启动文件夹中打开一个新窗口 如何打印该文件夹的路径但实际上不在资源管理器中打开该文件夹 您可以使用 NET s Environment SpecialFolder 此 Pow
  • 在 C++ 中的派生类构造函数中访问基模板类的变量

    让我们看一下这个简单的代码示例 其中包括一个基类和一个从 Base 派生的类 该类在其构造函数中需要基类成员的地址 include
  • 与 Polymer.Templatizer 的两种方式数据绑定

    我正在尝试使用模板化器在 Polymer 中的主机元素和模板之间进行两种方式的数据绑定 例如 如果我试图保持两个输入框同步
  • 应用程序 didreceiveRemoteNotification 并跳转到特定视图

    我一直在尽一切努力来解决这个问题 当应用程序关闭时 我会收到一条通知 其中包含 2 个自定义项目 一个类型和一个 ID 类型应该告诉我要加载哪个视图 而 id 应该告诉应用程序从数据库获取哪一行 我正在经历地狱般的尝试来解决这个问题 我需要