ios - 推送通知在 TabBarController 中打开特定屏幕 NavigationController RevealViewController

标签 ios swift apple-push-notifications appdelegate

这就是我正在尝试做的事情。 当我收到推送通知并点击“我想在我的应用程序中显示特定屏幕”时。我发现了很多相关内容,但由于应用程序结构的复杂性,我遇到了麻烦。 该应用程序的结构如下:

我想将一些参数传递给 DetailViewContorller,这样我就可以确保在打开屏幕时获得正确的结果。 这是我的应用程序结构的屏幕截图 application Folow

在我的 AppDelegate 中使用以下代码:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let tb = storyboard.instantiateViewControllerWithIdentifier("TabBarVC") as! UITabBarController 
tb.selectedIndex = 1
window?.rootViewController? = tb

点击通知时我已成功进入选项卡栏,但我对结果不满意。我仍然遇到以下问题:

  1. revealViewController 为零,所以我无法打开我的设置面板
  2. 我仍然没有到达位于 View 层次结构底部的 DetailViewController

任何提示将不胜感激。

最佳答案

虽然我的流程有点不同,但我也遇到了类似的问题。我最终处理了推送通知事件(当用户点击它时)并将对象存储在应用程序委托(delegate)级别。在之后出现的每个 View Controller 中(在 ViewDidLoad() 方法中),我将检查该对象并确定是否将流重定向到下一个 View Controller 。为了帮助解决这个问题,我的通知有一个与之关联的类型。不幸的是,我无法找到更好的解决方案。

附注看起来您正在代码中实例化 View Controller ,而我正在使用 Storyboard。但是,基本思想是相同的。我结束了

关于ios - 推送通知在 TabBarController 中打开特定屏幕 NavigationController RevealViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37018146/

相关文章:

ios - 在 Swift 中设置 GKMatchmakerViewControllerDelegate 时出现错误吗?

ios - 为什么 insetForSectionAt UICollectionView 委托(delegate)不在 iOS Swift 3 中调用?

swift - 将我的项目与 firebase 连接以发送推送通知时出错

ios - 推送通知后运行函数

ios - iOS应用程序-需要更改应用程序名称,但是推送通知证书,预配配置文件和应用程序ID会怎样?

ios - 3D Touch Quick Action 无法快速工作 3

ios - 在应用颜色时对图像应用阴影

javascript - 从 native Webview 获取网页的动态内容

iOS 自动续订订阅 : receipt validation flows

iphone - 如何在后台线程中延迟调用方法