如何在接收远程通知时从app delegate正确转换到View Controller?

时间:2015-10-06 11:33:40

标签: ios swift

我收到远程通知时会从app委托文件中显示一个视图控制器。

内部didReceiveRemoteNotification

var rootViewController = UIApplication.sharedApplication().keyWindow?.rootViewController
let shareController : ShareViewController
var storyboard = UIStoryboard(name: "Main", bundle: nil)
shareController = storyboard.instantiateViewControllerWithIdentifier("shareController") as! ShareViewController

self.window?.makeKeyAndVisible()
rootViewController!.presentViewController(shareController, animated: true, completion: {() -> Void in
    shareController.executeSharing()
 })

收到通知后工作正常但是当我强制终止应用程序然后收到远程通知时,应用程序才会打开,但它没有转换到ShareViewController。

如果收到远程通知,无论当前哪个控制器位于顶部,如何将其转换为ShareViewController?

1 个答案:

答案 0 :(得分:0)

仅在启动应用程序时调用didReceiveRemoteNotification方法(无论是在前台还是在后台。当应用程序终止时,此方法不会被调用,这就是您当前实现的原因所在'为了支持这种情况,你需要为你的applicationDidFinishLaunching方法添加特殊处理。通知对象有一个userInfo属性,其中包含一个标志,让你知道应用程序是由于远程通知(以及该通知的所有必要数据)而启动。