【问题标题】:Present specific view controller in didReceiveRemoteNotification with Swift使用 Swift 在 didReceiveRemoteNotification 中显示特定的视图控制器
【发布时间】:2015-07-06 18:07:46
【问题描述】:

当用户点击推送通知时,我希望他们被带到我的应用程序中的特定表格视图控制器。此表格视图控制器嵌入在导航控制器中,导航控制器嵌入在标签栏控制器(我的根视图控制器)中。下图显示了这一点。

根视图Tab Bar Controller的storyboard ID为“HomeVC”,类名为“HomeViewController”,Navigation Controller的storyboard ID为“SettingsNavigationVC”,Table View Controller的storyboard ID为“SettingsTableVC” " 和一个类名 "SettingsNavigationVC"。

我有推送通知工作。通过工作,我的意思是我可以从一个设备发送消息并在另一个设备上接收它,但是当接收者点击通知时,我似乎无法打开除根视图控制器之外的任何其他视图控制器。根据我使用的push notification guide,我在didReceiveRemoteNotification方法中使用如下代码:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject: AnyObject]) {

    let rootVC = self.window!.rootViewController
    if PFUser.currentUser() != nil {
        let settingsTableVC = SettingsTableViewController()
        rootVC?.navigationController?.pushViewController(settingsTableVC, animated: false)
    }
}

我做错了什么,或者我必须做什么才能呈现正确的视图控制器?

【问题讨论】:

    标签: ios xcode swift uiviewcontroller push-notification


    【解决方案1】:

    试试这个

    let storyboard = UIStoryboard(name: "YourStoryboardName", bundle: nil)
    let rootVC = storyboard.instantiateViewControllerWithIdentifier("HomeVC") as! UITabBarController
    if PFUser.currentUser() != nil {
        rootVC.selectedIndex = 2 // Index of the tab bar item you want to present, as shown in question it seems is item 2
        self.window!.rootViewController = rootVC
    }
    

    【讨论】:

      【解决方案2】:

      为了推送到特定的视图控制器,您必须替换以下行:

      你的:

      rootVC?.navigationController?.pushViewController(settingsTableVC, animated: false)
      

      我的:

      rootVC?.visibleViewController.navigationController?.pushViewController(settingsTableVC, animated: true)
      

      对于呈现任何视图控制器,你必须使用这个:

      rootVC?.visibleViewController.navigationController?.presentViewController(settingsTableVC, animated: false, completion: nil)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 2012-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多