App 在 Inactive 时收到 Remote Notification 后点击打开,如何设置进入 App 显示的某个特定的 View Controller

2014-12-13 00:41:23 +08:00
 austinchou0126
目前在做App推送相关的部分,遇到了一个问题。我的App是通过Storyboard创建的。
目前整个App的View Controllers结构如下

TabBarController -> Navigation Controller * 3 -> View Controller * 3

TabBar和Navigation Controller都是从Xcode里创建的,先Embedded in 三个NC,然后再将三个NC加入TabBar。

现在我想做的是,收到App推送后进入第二个View Controller,这样的用户体验比较好。查了网上各种方法,但是无论怎么搞,都是只能进入第一个View Controller,或者进入第二个View Controller后不显示Tab Bar。

PS: 我这部分代码是在AppDelegate.m中的。
2796 次点击
所在节点    iDev
11 条回复
austinchou0126
2014-12-13 00:45:41 +08:00
austinchou0126
2014-12-13 00:47:48 +08:00
@PrideChung
两位巨巨求帮助~
txx
2014-12-13 00:48:31 +08:00
本来想留句话的...然后发现点名了..那我就怕怕屁股走人了.....
austinchou0126
2014-12-13 00:55:28 +08:00
@txx 我就是随手一点,请不要在意!
l12ab
2014-12-14 01:31:04 +08:00
应该是在发送推送的时候附带个附加参数,然后根据参数不同进行跳转,至于如何跳转,push、modal等等方式.....
Elethom
2014-12-14 11:05:40 +08:00
https://github.com/Elethom/PRRouter

其實你翻翻我 GitHub 就能找到解決方案. 只是沒做 social marketing 才沒什麼 stars, 其實很好用, 都是在前人的基礎上搭建但比他們做得更好的東西.
PrideChung
2014-12-14 17:18:16 +08:00
你只能自己一步步找路进去你想要到达的ViewController,用 performSegueWithIdentifier: 来触发你storyboard里面的segue。或者你可以学一些新闻客户端那样,在window的rootViewController上面直接present一个ViewController
austinchou0126
2014-12-14 19:19:24 +08:00
@PrideChung 我尝试过在applicationDidFinishWithLaunchOptions里判断是否从Remote Notification进入,然后初始化TabBarController,再初始化TabBar的三个NC,NC里设置rootVC为VC,然后使用setSelected:1来进入,但是发现进入后TabBarItems只有一个,然后还加载不出来VC的内容。
austinchou0126
2014-12-14 19:20:02 +08:00
@PrideChung 由于第二个VC里面是一个TableView,所以Model的话感觉怪怪的。
PrideChung
2014-12-14 20:34:56 +08:00
@austinchou0126 无论应用是否从推送进入的,你设置各个ViewController的层级的步骤都是一样的,关键是看怎么把参数传进去罢了。
rannie
2014-12-15 17:57:57 +08:00
你的tabVC里面有三个VC的话对应你应用内的三个Module,Module类会有支持的supportedURLSchemas, 你在接收到remote Note的时候看它的协议,然后让程序管理Module的manager去找三个module哪个接收这个协议,然后select这个module对应的tab item,进入后再处理具体参数。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/153570

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX