这就是我正在尝试做的事情。 当我收到推送通知并点击“我想在我的应用程序中显示特定屏幕”时。我发现了很多相关内容,但由于应用程序结构的复杂性,我遇到了麻烦。 该应用程序的结构如下:
LoginViewController
RevealViewController
( https://github.com/John-Lluch/SWRevealViewController )UITabbarController
NavigationController
ViewController
(这是一个表格 View )DetailViewContorller
我想将一些参数传递给 DetailViewContorller
,这样我就可以确保在打开屏幕时获得正确的结果。
这是我的应用程序结构的屏幕截图
application Folow
在我的 AppDelegate 中使用以下代码:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let tb = storyboard.instantiateViewControllerWithIdentifier("TabBarVC") as! UITabBarController
tb.selectedIndex = 1
window?.rootViewController? = tb
点击通知时我已成功进入选项卡栏,但我对结果不满意。我仍然遇到以下问题:
revealViewController
为零,所以我无法打开我的设置面板- 我仍然没有到达位于 View 层次结构底部的
DetailViewController
任何提示将不胜感激。
最佳答案
虽然我的流程有点不同,但我也遇到了类似的问题。我最终处理了推送通知事件(当用户点击它时)并将对象存储在应用程序委托(delegate)级别。在之后出现的每个 View Controller 中(在 ViewDidLoad() 方法中),我将检查该对象并确定是否将流重定向到下一个 View Controller 。为了帮助解决这个问题,我的通知有一个与之关联的类型。不幸的是,我无法找到更好的解决方案。
附注看起来您正在代码中实例化 View Controller ,而我正在使用 Storyboard。但是,基本思想是相同的。我结束了
关于ios - 推送通知在 TabBarController 中打开特定屏幕 NavigationController RevealViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37018146/