从push打开viewcontroller时,不加载Burger菜单

时间:2015-06-29 10:34:41

标签: swift parse-platform push-notification

我有一个当前使用推送通知的应用,我们已经开始尝试从JSON推送中打开应用的特定页面。

这是可能打开的一个页面的代码:

//Extract the notification data
    if let notificationPayload = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? NSDictionary {
        // Get which page to open
        let viewload = notificationPayload["view"] as? NSString
        let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
        //Load correct view
                    if viewload == "videos" {
            let mainStoryboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
            let initialViewController : UIViewController = mainStoryboard.instantiateViewControllerWithIdentifier("Videos") as! UIViewController
            self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
            self.window?.rootViewController = initialViewController
            self.window?.makeKeyAndVisible()
        }
    }

问题是这样做会跳过允许汉堡菜单在侧面打开的viewcontroller。

有没有办法打开汉堡菜单控制器并从推送中加载正确的视图?

如果您需要更多信息,请告知我们,我会根据需要发布更新

1 个答案:

答案 0 :(得分:0)

您通常不应该创建新窗口并设置根视图控制器。至少如果你没有让根视图控制器成为你的应用程序的真正根VC,并要求它显示你推送的特定内容。

通常,您的根VC应该理解可能需要显示特定的VC(来自推送或其他地方)并为应用委托提供一种方法。这可以通过转发请求直到某个VC可以处理它来实现,它可以简单地将其推送到导航控制器,它可以发布通知,或者它可以呈现模态。

有许多潜在的选择,您需要确定哪个选项适合您的应用,但重要的是它与现有的视图层次结构相关联而不是替换它。