用户单击推送通知后如何打开特定控制器

时间:2015-05-21 17:37:37

标签: ios swift push-notification pushviewcontroller

我尝试在用户点击"新消息后打开特定控制器"推送通知,但我找不到如何导航到会话详细控制器。

以下是didReceiveRemoteNotification()

中的代码
 var rootViewController = self.window!.rootViewController
 let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
 var setViewController = mainStoryboard.instantiateViewControllerWithIdentifier("JSQVCTest") as! JSQVCTest
 setViewController.currentConversation = currentConversation
 rootViewController!.navigationController!.popToViewController(setViewController, animated: false)

当我运行此操作时,应用程序在最后一行崩溃,因为rootViewController!.navigationControllernil,我收到了消息

  

致命错误:在解包可选值时意外发现nil

我的故事板看起来像这样:

  1. 以视图控制器身份登录
  2. 导航控制器
  3. 会话列表作为tableViewController
  4. 会话详细信息为tableViewController
  5. 编辑:好了,现在我设法定位所有控制器并将其打印在日志中,但是当应用程序从后台返回时,我无法呈现我想要的控制器:

    var rootViewController = self.window!.rootViewController
    
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    
    let navigationViewController = mainStoryboard.instantiateViewControllerWithIdentifier("navigationController") as! UINavigationController
    
    var setConversationViewController = mainStoryboard.instantiateViewControllerWithIdentifier("conversationController") as! ConversationListTableViewController
    
    navigationViewController.pushViewController(setConversationViewController, animated: false)
    
    var setMessageViewController = mainStoryboard.instantiateViewControllerWithIdentifier("JSQVCTest") as! JSQVCTest
    
    navigationViewController.pushViewController(setMessageViewController, animated: true)
    

0 个答案:

没有答案
相关问题