ios - 用户通过触摸收到的推送通知打开应用程序

标签 ios objective-c swift push-notification

在我的应用程序中,我有三个 View Controller ,我们称它们为 MainVC、ObjectsVC 和 EventsVC(如果您不喜欢这样的快捷方式,抱歉)。 MainVC 是整个应用程序的初始 VC,其余是包含一些对象列表的 TableVC。
此应用程序支持带有“id”字段的推送通知:
- id = 0 -> 应用正常启动
- id = 1 -> 应用以 ObjectsVC 开头
- id = 2 -> 应用以 EventsVC 开头
当用户点击传入的 PN 时,如何实现上面列出的转换?

最佳答案

一种直接的方法是返回到初始的 viewController,然后推送所需的 View Controller 。例如:

if id == 2 {
    let eventsVc = EventsVC()
    navigationController?.popToRootViewController(animated: false)
    navigationController?.pushViewController(eventsVc, animated: false)
}

如果所需的 viewController 已经在导航堆栈中,您应该检查它是否确实存在并向其弹出

这实际上取决于所需的导航行为。

关于ios - 用户通过触摸收到的推送通知打开应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43916561/

相关文章:

ios - UITableViewCell 按钮不可点击 IOS Swift

ios - 使用 xib 为所有 iPhone 尺寸调整 UI 的最简单方法

ios - 即使内容的 Storyboard已更新,也不会调用通知内容

swift - 仅更改 UINavigationBar 背景的 alpha?

ios - UIScrollView,无需一直向下滚动即可检测可滚动区域高度

ios - Swift iOS - 参数标签 '(float3:)' 与任何可用的重载不匹配

iphone - 如何在音乐播放器中设置音乐播放 slider

ios - swift |为什么我的 UITableView 是空的(自定义单元格)

iOS FlickrKit : err code ="95" msg ="SSL is required"

ios - 代码在模拟器上运行良好,但在真实设备上却为零